home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / dpkg / info / console-setup.config < prev    next >
Encoding:
Text File  |  2009-04-08  |  76.4 KB  |  3,051 lines

  1. #!/bin/bash
  2.  
  3. #     Copyright ¬© 2005 Anton Zinoviev <anton@lml.bas.bg>
  4.  
  5. #     This program is free software; you can redistribute it and/or modify
  6. #     it under the terms of the GNU General Public License as published by
  7. #     the Free Software Foundation; either version 2 of the License, or
  8. #     (at your option) any later version.
  9.  
  10. #     This program is distributed in the hope that it will be useful,
  11. #     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. #     GNU General Public License for more details.
  14.  
  15. #     If you have not received a copy of the GNU General Public License
  16. #     along with this program, write to the Free Software Foundation, Inc.,
  17. #     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19. #                        ----------
  20. #                         CONTENTS
  21. #                        ----------
  22. #
  23. # 1. Initialise $fontsets, $charmaps and $kbdnames with the supported
  24. #    fontsets, charmaps, keyboard models, layouts and variants.  These
  25. #    lists can not be computed because the config script is invoked
  26. #    during the preconfiguration phase and the available fonts, ACM,
  27. #    etc. are not yet unpacked.
  28. #
  29. # 2. Function ask_debconf.  Ask user to choose amongst the options
  30. #    listed in $fontsets, $charmaps and $kbdnames.
  31. #
  32. # 3. Function guess_arch - detect the architecture and subarchitecture
  33. #
  34. # 4. Function available_fontsets - lists all fontfaces that can be
  35. #    used with $codeset.
  36. #
  37. # 5. Function available_fontsizes - lists all font sizes that can be
  38. #    used with the $codeset-$fontface combination.
  39. #
  40. # 6. Set $locale.  Set $default_codeset and $codeset_priority acording
  41. #    to $locale.
  42. #
  43. # 7. Set $default_layout and acording to $locale. default_variant=''
  44. #
  45. # 8. Set $default_charmap and $charmap_priority acording to $locale.
  46. #
  47. # 9. Set $arch.  Set $default_model and $model_priority acording to
  48. #    $arch.
  49. #
  50. # 10. Read /etc/default/console-setup and store values into debconf
  51. #     db.  Four very long case instructions in order to translate
  52. #     options like "grp:caps_toggle" to human-readable strings like
  53. #     "Caps Lock".
  54. #
  55. # 11. Ask the Debconf questions starting from STATE=1 and ending after
  56. #     STATE=9.  Again four long case instructions in STATE=4 to
  57. #     translate "Caps Lock" to "grp:caps_toggle".
  58.  
  59. # This script would be simpler and faster if written in Perl but with
  60. # Shell it can be used in the Installer
  61.  
  62. set -e
  63.  
  64. . /usr/share/debconf/confmodule
  65.  
  66. CONFIGFILE=/etc/default/console-setup
  67.  
  68. package=console-setup
  69. # package=console-setup
  70.  
  71. fontsets='Arabic-Fixed15
  72. Arabic-Fixed16
  73. Arabic-VGA14
  74. Arabic-VGA16
  75. Arabic-VGA8
  76. Armenian-Fixed13
  77. Armenian-Fixed14
  78. Armenian-Fixed15
  79. Armenian-Fixed16
  80. Armenian-Fixed18
  81. CyrAsia-Fixed13
  82. CyrAsia-Fixed14
  83. CyrAsia-Fixed15
  84. CyrAsia-Fixed16
  85. CyrAsia-Fixed18
  86. CyrAsia-Terminus12x6
  87. CyrAsia-Terminus14
  88. CyrAsia-Terminus16
  89. CyrAsia-Terminus20x10
  90. CyrAsia-Terminus24x12
  91. CyrAsia-Terminus28x14
  92. CyrAsia-Terminus32x16
  93. CyrAsia-TerminusBold14
  94. CyrAsia-TerminusBold16
  95. CyrAsia-TerminusBold20x10
  96. CyrAsia-TerminusBold24x12
  97. CyrAsia-TerminusBold28x14
  98. CyrAsia-TerminusBold32x16
  99. CyrAsia-TerminusBoldVGA14
  100. CyrAsia-TerminusBoldVGA16
  101. CyrKoi-Fixed13
  102. CyrKoi-Fixed14
  103. CyrKoi-Fixed15
  104. CyrKoi-Fixed16
  105. CyrKoi-Fixed18
  106. CyrKoi-Terminus12x6
  107. CyrKoi-Terminus14
  108. CyrKoi-Terminus16
  109. CyrKoi-Terminus20x10
  110. CyrKoi-Terminus24x12
  111. CyrKoi-Terminus28x14
  112. CyrKoi-Terminus32x16
  113. CyrKoi-TerminusBold14
  114. CyrKoi-TerminusBold16
  115. CyrKoi-TerminusBold20x10
  116. CyrKoi-TerminusBold24x12
  117. CyrKoi-TerminusBold28x14
  118. CyrKoi-TerminusBold32x16
  119. CyrKoi-TerminusBoldVGA14
  120. CyrKoi-TerminusBoldVGA16
  121. CyrKoi-VGA14
  122. CyrKoi-VGA16
  123. CyrKoi-VGA8
  124. CyrSlav-Fixed13
  125. CyrSlav-Fixed14
  126. CyrSlav-Fixed15
  127. CyrSlav-Fixed16
  128. CyrSlav-Fixed18
  129. CyrSlav-Terminus12x6
  130. CyrSlav-Terminus14
  131. CyrSlav-Terminus16
  132. CyrSlav-Terminus20x10
  133. CyrSlav-Terminus24x12
  134. CyrSlav-Terminus28x14
  135. CyrSlav-Terminus32x16
  136. CyrSlav-TerminusBold14
  137. CyrSlav-TerminusBold16
  138. CyrSlav-TerminusBold20x10
  139. CyrSlav-TerminusBold24x12
  140. CyrSlav-TerminusBold28x14
  141. CyrSlav-TerminusBold32x16
  142. CyrSlav-TerminusBoldVGA14
  143. CyrSlav-TerminusBoldVGA16
  144. CyrSlav-VGA14
  145. CyrSlav-VGA16
  146. CyrSlav-VGA8
  147. Ethiopian-Fixed15
  148. Ethiopian-Fixed18
  149. Ethiopian-Goha12
  150. Ethiopian-Goha14
  151. Ethiopian-Goha16
  152. Ethiopian-GohaClassic12
  153. Ethiopian-GohaClassic14
  154. Ethiopian-GohaClassic16
  155. Georgian-Fixed13
  156. Georgian-Fixed14
  157. Georgian-Fixed15
  158. Georgian-Fixed16
  159. Georgian-Fixed18
  160. Greek-Fixed13
  161. Greek-Fixed14
  162. Greek-Fixed15
  163. Greek-Fixed16
  164. Greek-Fixed18
  165. Greek-Terminus12x6
  166. Greek-Terminus14
  167. Greek-Terminus16
  168. Greek-Terminus20x10
  169. Greek-Terminus24x12
  170. Greek-Terminus28x14
  171. Greek-Terminus32x16
  172. Greek-TerminusBold14
  173. Greek-TerminusBold16
  174. Greek-TerminusBold20x10
  175. Greek-TerminusBold24x12
  176. Greek-TerminusBold28x14
  177. Greek-TerminusBold32x16
  178. Greek-TerminusBoldVGA14
  179. Greek-TerminusBoldVGA16
  180. Greek-VGA14
  181. Greek-VGA16
  182. Greek-VGA8
  183. Hebrew-Fixed13
  184. Hebrew-Fixed14
  185. Hebrew-Fixed15
  186. Hebrew-Fixed16
  187. Hebrew-Fixed18
  188. Hebrew-VGA14
  189. Hebrew-VGA16
  190. Hebrew-VGA8
  191. Lao-Fixed14
  192. Lao-Fixed15
  193. Lao-Fixed16
  194. Lat15-Fixed13
  195. Lat15-Fixed14
  196. Lat15-Fixed15
  197. Lat15-Fixed16
  198. Lat15-Fixed18
  199. Lat15-Terminus12x6
  200. Lat15-Terminus14
  201. Lat15-Terminus16
  202. Lat15-Terminus20x10
  203. Lat15-Terminus24x12
  204. Lat15-Terminus28x14
  205. Lat15-Terminus32x16
  206. Lat15-TerminusBold14
  207. Lat15-TerminusBold16
  208. Lat15-TerminusBold20x10
  209. Lat15-TerminusBold24x12
  210. Lat15-TerminusBold28x14
  211. Lat15-TerminusBold32x16
  212. Lat15-TerminusBoldVGA14
  213. Lat15-TerminusBoldVGA16
  214. Lat15-VGA14
  215. Lat15-VGA16
  216. Lat15-VGA8
  217. Lat2-Fixed13
  218. Lat2-Fixed14
  219. Lat2-Fixed15
  220. Lat2-Fixed16
  221. Lat2-Fixed18
  222. Lat2-Terminus12x6
  223. Lat2-Terminus14
  224. Lat2-Terminus16
  225. Lat2-Terminus20x10
  226. Lat2-Terminus24x12
  227. Lat2-Terminus28x14
  228. Lat2-Terminus32x16
  229. Lat2-TerminusBold14
  230. Lat2-TerminusBold16
  231. Lat2-TerminusBold20x10
  232. Lat2-TerminusBold24x12
  233. Lat2-TerminusBold28x14
  234. Lat2-TerminusBold32x16
  235. Lat2-TerminusBoldVGA14
  236. Lat2-TerminusBoldVGA16
  237. Lat2-VGA14
  238. Lat2-VGA16
  239. Lat2-VGA8
  240. Lat38-Fixed13
  241. Lat38-Fixed14
  242. Lat38-Fixed15
  243. Lat38-Fixed16
  244. Lat38-Fixed18
  245. Lat38-VGA14
  246. Lat38-VGA16
  247. Lat38-VGA8
  248. Lat7-Fixed13
  249. Lat7-Fixed14
  250. Lat7-Fixed15
  251. Lat7-Fixed16
  252. Lat7-Fixed18
  253. Lat7-Terminus12x6
  254. Lat7-Terminus14
  255. Lat7-Terminus16
  256. Lat7-Terminus20x10
  257. Lat7-Terminus24x12
  258. Lat7-Terminus28x14
  259. Lat7-Terminus32x16
  260. Lat7-TerminusBold14
  261. Lat7-TerminusBold16
  262. Lat7-TerminusBold20x10
  263. Lat7-TerminusBold24x12
  264. Lat7-TerminusBold28x14
  265. Lat7-TerminusBold32x16
  266. Lat7-TerminusBoldVGA14
  267. Lat7-TerminusBoldVGA16
  268. Lat7-VGA14
  269. Lat7-VGA16
  270. Lat7-VGA8
  271. Thai-Fixed13
  272. Thai-Fixed14
  273. Thai-Fixed15
  274. Thai-Fixed16
  275. Thai-Fixed18
  276. Uni1-Fixed15
  277. Uni1-Fixed16
  278. Uni1-VGA14
  279. Uni1-VGA16
  280. Uni1-VGA8
  281. Uni2-Fixed13
  282. Uni2-Fixed14
  283. Uni2-Fixed15
  284. Uni2-Fixed16
  285. Uni2-Fixed18
  286. Uni2-Terminus12x6
  287. Uni2-Terminus14
  288. Uni2-Terminus16
  289. Uni2-Terminus20x10
  290. Uni2-Terminus24x12
  291. Uni2-Terminus28x14
  292. Uni2-Terminus32x16
  293. Uni2-TerminusBold14
  294. Uni2-TerminusBold16
  295. Uni2-TerminusBold20x10
  296. Uni2-TerminusBold24x12
  297. Uni2-TerminusBold28x14
  298. Uni2-TerminusBold32x16
  299. Uni2-TerminusBoldVGA14
  300. Uni2-TerminusBoldVGA16
  301. Uni2-VGA14
  302. Uni2-VGA16
  303. Uni2-VGA8
  304. Uni3-Fixed13
  305. Uni3-Fixed14
  306. Uni3-Fixed15
  307. Uni3-Fixed16
  308. Uni3-Fixed18
  309. Uni3-Terminus12x6
  310. Uni3-Terminus14
  311. Uni3-Terminus16
  312. Uni3-Terminus20x10
  313. Uni3-Terminus24x12
  314. Uni3-Terminus28x14
  315. Uni3-Terminus32x16
  316. Uni3-TerminusBold14
  317. Uni3-TerminusBold16
  318. Uni3-TerminusBold20x10
  319. Uni3-TerminusBold24x12
  320. Uni3-TerminusBold28x14
  321. Uni3-TerminusBold32x16
  322. Uni3-TerminusBoldVGA14
  323. Uni3-TerminusBoldVGA16
  324. Vietnamese-Fixed13
  325. Vietnamese-Fixed14
  326. Vietnamese-Fixed15
  327. Vietnamese-Fixed16
  328. Vietnamese-Fixed18
  329. '
  330. # fontsets='Arabic-Fixed15
  331. # Arabic-Fixed16
  332. # Arabic-vga14
  333. # ... 
  334. # Vietnamese-Fixed18
  335. # '
  336.  
  337. charmaps='ARMSCII-8
  338. CP1251
  339. CP1255
  340. CP1256
  341. GEORGIAN-ACADEMY
  342. GEORGIAN-PS
  343. IBM1133
  344. ISIRI-3342
  345. ISO-8859-1
  346. ISO-8859-10
  347. ISO-8859-11
  348. ISO-8859-13
  349. ISO-8859-14
  350. ISO-8859-15
  351. ISO-8859-16
  352. ISO-8859-2
  353. ISO-8859-3
  354. ISO-8859-4
  355. ISO-8859-5
  356. ISO-8859-6
  357. ISO-8859-7
  358. ISO-8859-8
  359. ISO-8859-9
  360. KOI8-R
  361. KOI8-U
  362. TIS-620
  363. VISCII
  364. UTF-8'
  365.  
  366. # charmaps='ARMSCII-8
  367. # CP1251
  368. # CP1255
  369. # ...
  370. # UTF-8'
  371.  
  372. kbdnames='model*logidinovo*Logitech diNovo Keyboard
  373. model*amiga*Amiga
  374. model*acer_c300*Acer C300
  375. model*yahoo*Yahoo! Internet Keyboard
  376. model*macintosh*Macintosh
  377. model*dell101*Dell 101-key PC
  378. model*mx2500*Memorex MX2500 EZ-Access Keyboard
  379. model*geniuscomfy2*Genius Comfy KB-21e-Scroll
  380. model*pc98*PC-98xx Series
  381. model*dell*Dell
  382. model*logiinkseusb*Logitech iTouch Internet Navigator Keyboard SE (USB)
  383. model*ipaq*Compaq iPaq Keyboard
  384. model*compalfl90*FL90
  385. model*sk1300*SK-1300
  386. model*thinkpad60*IBM ThinkPad R60/T60/R61/T61
  387. model*vsonku306*ViewSonic KU-306 Internet Keyboard
  388. model*mx2750*Memorex MX2750
  389. model*logitech_g15*Logitech G15 extra keys via G15daemon
  390. model*scorpius*Advance Scorpius KI
  391. model*compaqik18*Compaq Internet Keyboard (18 keys)
  392. model*brother*Brother Internet Keyboard
  393. model*acpi*ACPI Standard
  394. model*pc105*Generic 105-key (Intl) PC
  395. model*btc9019u*BTC 9019U
  396. model*gyration*Gyration
  397. model*acer_ferrari4k*Acer Ferrari 4000
  398. model*qtronix*QTronix Scorpius 98N+
  399. model*fscaa1667g*Fujitsu-Siemens Computers AMILO laptop
  400. model*microsoftccurve2k*Microsoft Comfort Curve Keyboard 2000
  401. model*hpxt1000*Hewlett-Packard Omnibook XT1000
  402. model*macintosh_hhk*Happy Hacking Keyboard for Mac
  403. model*acer_laptop*Acer Laptop
  404. model*microsoftelite*Microsoft Natural Keyboard Elite
  405. model*btc9116u*BTC 9116U Mini Wireless Internet and Gaming
  406. model*hhk*Happy Hacking Keyboard
  407. model*diamond*Diamond 9801 / 9802 series
  408. model*hpxe3gc*Hewlett-Packard Omnibook XE3 GC
  409. model*samsung4510*Samsung SDM 4510P
  410. model*pc104*Generic 104-key PC
  411. model*sven303*SVEN Slim 303
  412. model*emachines*Laptop/notebook eMachines m68xx
  413. model*thinkpadz60*IBM ThinkPad Z60m/Z60t/Z61m/Z61t
  414. model*oretec*Ortek MCK-800 MM/Internet keyboard
  415. model*btc6301urf*BTC 6301URF
  416. model*trustda*Trust Direct Access Keyboard
  417. model*genius*Genius Comfy KB-16M / Genius MM Keyboard KWD-910
  418. model*btc5090*BTC 5090
  419. model*dellm65*Dell Precision M65
  420. model*dexxa*Dexxa Wireless Desktop Keyboard
  421. model*logiex110*Logitech Cordless Desktop EX110
  422. model*geniuskb19e*Genius KB-19e NB
  423. model*btc5126t*BTC 5126T
  424. model*classmate*Classmate PC
  425. model*rapidaccess*IBM Rapid Access
  426. model*jp106*Japanese 106-key
  427. model*chicony9885*Chicony KB-9885
  428. model*logii350*Logitech Internet 350 Keyboard
  429. model*thinkpad*IBM ThinkPad 560Z/600/600E/A22E
  430. model*olpc*OLPC
  431. model*hpnx9020*Hewlett-Packard nx9020
  432. model*dellsk8125*Dell SK-8125
  433. model*trust*Trust Wireless Keyboard Classic
  434. model*asus_laptop*Asus Laptop
  435. model*mx1998*Memorex MX1998
  436. model*sk7100*SK-7100
  437. model*btc5113rf*BTC 5113RF Multimedia
  438. model*microsoftprousb*Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
  439. model*hpdv5*Hewlett-Packard Pavilion dv5
  440. model*btc9000*BTC 9000
  441. model*sp_inet*Super Power Multimedia Keyboard
  442. model*macbook79*MacBook/MacBook Pro (Intl)
  443. model*kr106*Korean 106-key
  444. model*hpi6*Hewlett-Packard Internet Keyboard
  445. model*macintosh_old*Macintosh Old
  446. model*hp6000*Hewlett-Packard Omnibook 6000/6100
  447. model*btc9001ah*BTC 9001AH
  448. model*logicink*Logitech Internet Navigator Keyboard
  449. model*omnikey101*Northgate OmniKey 101
  450. model*cherrycyboard*Cherry CyBo@rd USB-Hub
  451. model*armada*Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
  452. model*macbook78*MacBook/MacBook Pro
  453. model*abnt2*Brazilian ABNT2
  454. model*ibm_spacesaver*IBM Space Saver
  455. model*microsoftmult*Microsoft Wireless Multimedia Keyboard 1.0A
  456. model*pc101*Generic 101-key PC
  457. model*logicd_opt*Logitech Cordless Desktop Optical
  458. model*logiultraxc*Logitech Ultra-X Cordless Media Desktop Keyboard
  459. model*microsoftprose*Microsoft Internet Keyboard Pro, Swedish
  460. model*itouch*Logitech iTouch
  461. model*hpzt11xx*Hewlett-Packard Pavilion ZT11xx
  462. model*geniuscomfy*Genius Comfy KB-12e
  463. model*logiultrax*Logitech Ultra-X Keyboard
  464. model*cherryblueb*Cherry CyMotion Master XPress
  465. model*chicony0420*Chicony KU-0420
  466. model*hp5xx*Hewlett-Packard Omnibook 5xx
  467. model*apple*Apple
  468. model*microsoftinet*Microsoft Internet Keyboard
  469. model*samsung4500*Samsung SDM 4500P
  470. model*microsoft7000*Microsoft Natural Wireless Ergonomic Keyboard 7000
  471. model*logiik*Logitech Internet Keyboard
  472. model*cherryblue*Cherry Blue Line CyBo@rd
  473. model*chicony*Chicony Internet Keyboard
  474. model*a4_rfkb23*A4Tech Wireless Desktop RFKB-23
  475. model*compaqik13*Compaq Internet Keyboard (13 keys)
  476. model*ataritt*Atari TT
  477. model*silvercrest*SILVERCREST Multimedia Wireless Keyboard
  478. model*targa_v811*Targa Visionary 811
  479. model*propeller*Propeller Voyager (KTEZ-1000)
  480. model*dellsk8135*Dell SK-8135
  481. model*benqx*BenQ X-Touch
  482. model*hp500fa*Hewlett-Packard Omnibook 500 FA
  483. model*symplon*Symplon PaceBook (tablet PC)
  484. model*microsoft*Microsoft Natural
  485. model*precision_m*Dell Laptop/notebook Precision M series
  486. model*logicd*Logitech Cordless Desktop
  487. model*benqx730*BenQ X-Touch 730
  488. model*logiinkse*Logitech iTouch Internet Navigator Keyboard SE
  489. model*latitude*Dell Latitude series laptop
  490. model*ennyah_dkb1008*Ennyah DKB-1008
  491. model*pc102*Generic 102-key (Intl) PC
  492. model*logiitc*Logitech iTouch Cordless Keyboard (model Y-RB6)
  493. model*sk6200*SK-6200
  494. model*cymotionlinux*Cherry CyMotion Master Linux
  495. model*logidinovoedge*Logitech diNovo Edge Keyboard
  496. model*everex*Everex STEPnote
  497. model*a4techKB21*A4Tech KB-21
  498. model*compaqik7*Compaq Internet Keyboard (7 keys)
  499. model*apple_laptop*Apple Laptop
  500. model*thinkpadintl*IBM ThinkPad 560Z/600/600E/A22E, Intl
  501. model*winbook*Winbook Model XP5
  502. model*logitech_base*Logitech Generic Keyboard
  503. model*inspiron*Dell Laptop/notebook Inspiron 6xxx/8xxx
  504. model*logiclx300*Logitech Cordless Desktop LX-300
  505. model*logicdn*Logitech Cordless Desktop Navigator
  506. model*rapidaccess2*IBM Rapid Access II
  507. model*sun4*Sun Type 4
  508. model*presario*Laptop/notebook Compaq (eg. Presario) Internet Keyboard
  509. model*logicdpa2*Logitech Cordless Desktop Pro (alternate option2)
  510. model*cherrycmexpert*Cherry CyMotion Expert
  511. model*microsoftoffice*Microsoft Office Keyboard
  512. model*evdev*Evdev-managed keyboard
  513. model*honeywell_euroboard*Honeywell Euroboard
  514. model*dtk2000*DTK2000
  515. model*logicfn*Logitech Cordless Freedom/Desktop Navigator
  516. model*sun6*Sun Type 5/6
  517. model*logimel*Logitech Media Elite Keyboard
  518. model*toshiba_s3000*Toshiba Satellite S3000
  519. model*airkey*Acer AirKey V
  520. model*sk2500*SK-2500
  521. model*azonaRF2300*Azona RF2300 wireless Internet Keyboard
  522. model*hpxe3gf*Hewlett-Packard Omnibook XE3 GF
  523. model*hp250x*Hewlett-Packard SK-250x Multimedia Keyboard
  524. model*unitekkb1925*Unitek KB-1925
  525. model*microsoftprooem*Microsoft Natural Keyboard Pro OEM
  526. model*benqx800*BenQ X-Touch 800
  527. model*sun5*Sun Type 5
  528. model*logiaccess*Logitech Access Keyboard
  529. model*btc9000a*BTC 9000A
  530. model*microsoftpro*Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
  531. model*SKIP*Do not configure keyboard; keep kernel keymap
  532. model*cherrybluea*Cherry Blue Line CyBo@rd (alternate option)
  533. model*logicd_it*Logitech Cordless Desktop iTouch
  534. model*chicony0108*Chicony KU-0108
  535. model*dellusbmm*Dell USB Multimedia Keyboard
  536. model*a4techKBS8*A4Tech KBS-8
  537. model*sven*SVEN Ergonomic 2500
  538. model*compaqeak8*Compaq Easy Access Keyboard
  539. model*flexpro*Keytronic FlexPro
  540. model*logicda*Logitech Cordless Desktop (alternate option)
  541. layout*sy*Syria
  542. variant*sy**Syria
  543. variant*sy*syc_phonetic*Syria - Syriac phonetic
  544. variant*sy*syc*Syria - Syriac
  545. variant*sy*ku*Syria - Kurdish, Latin Q
  546. variant*sy*ku_alt*Syria - Kurdish, Latin Alt-Q
  547. variant*sy*ku_f*Syria - Kurdish, (F)
  548. layout*se*Sweden
  549. variant*se**Sweden
  550. variant*se*svdvorak*Sweden - Svdvorak
  551. variant*se*dvorak*Sweden - Dvorak
  552. variant*se*nodeadkeys*Sweden - Eliminate dead keys
  553. variant*se*rus*Sweden - Russian phonetic
  554. variant*se*smi*Sweden - Northern Saami
  555. variant*se*rus_nodeadkeys*Sweden - Russian phonetic, eliminate dead keys
  556. variant*se*mac*Sweden - Macintosh
  557. layout*mn*Mongolia
  558. variant*mn**Mongolia
  559. layout*hu*Hungary
  560. variant*hu**Hungary
  561. variant*hu*101_qwerty_comma_dead*Hungary - 101/qwerty/comma/Dead keys
  562. variant*hu*102_qwerty_dot_dead*Hungary - 102/qwerty/dot/Dead keys
  563. variant*hu*101_qwertz_dot_dead*Hungary - 101/qwertz/dot/Dead keys
  564. variant*hu*101_qwertz_comma_dead*Hungary - 101/qwertz/comma/Dead keys
  565. variant*hu*101_qwertz_dot_nodead*Hungary - 101/qwertz/dot/Eliminate dead keys
  566. variant*hu*101_qwerty_comma_nodead*Hungary - 101/qwerty/comma/Eliminate dead keys
  567. variant*hu*101_qwerty_dot_dead*Hungary - 101/qwerty/dot/Dead keys
  568. variant*hu*101_qwertz_comma_nodead*Hungary - 101/qwertz/comma/Eliminate dead keys
  569. variant*hu*nodeadkeys*Hungary - Eliminate dead keys
  570. variant*hu*102_qwertz_dot_nodead*Hungary - 102/qwertz/dot/Eliminate dead keys
  571. variant*hu*102_qwerty_dot_nodead*Hungary - 102/qwerty/dot/Eliminate dead keys
  572. variant*hu*102_qwerty_comma_nodead*Hungary - 102/qwerty/comma/Eliminate dead keys
  573. variant*hu*102_qwerty_comma_dead*Hungary - 102/qwerty/comma/Dead keys
  574. variant*hu*standard*Hungary - Standard
  575. variant*hu*102_qwertz_comma_nodead*Hungary - 102/qwertz/comma/Eliminate dead keys
  576. variant*hu*101_qwerty_dot_nodead*Hungary - 101/qwerty/dot/Eliminate dead keys
  577. variant*hu*102_qwertz_dot_dead*Hungary - 102/qwertz/dot/Dead keys
  578. variant*hu*qwerty*Hungary - qwerty
  579. variant*hu*102_qwertz_comma_dead*Hungary - 102/qwertz/comma/Dead keys
  580. layout*np*Nepal
  581. variant*np**Nepal
  582. layout*pk*Pakistan
  583. variant*pk**Pakistan
  584. variant*pk*ara*Pakistan - Arabic
  585. variant*pk*urd-nla*Pakistan - NLA
  586. variant*pk*urd-crulp*Pakistan - CRULP
  587. layout*gn*Guinea
  588. variant*gn**Guinea
  589. layout*lk*Sri Lanka
  590. variant*lk**Sri Lanka
  591. variant*lk*tam_TAB*Sri Lanka - Tamil TAB Typewriter
  592. variant*lk*tam_unicode*Sri Lanka - Tamil Unicode
  593. layout*kr*Korea, Republic of
  594. variant*kr**Korea, Republic of
  595. variant*kr*kr104*Korea, Republic of - 101/104 key Compatible
  596. layout*cn*China
  597. variant*cn**China
  598. variant*cn*tib_asciinum*China - Tibetan (with ASCII numerals)
  599. variant*cn*tib*China - Tibetan
  600. layout*ee*Estonia
  601. variant*ee**Estonia
  602. variant*ee*dvorak*Estonia - Dvorak
  603. variant*ee*nodeadkeys*Estonia - Eliminate dead keys
  604. variant*ee*us*Estonia - US keyboard with Estonian letters
  605. layout*et*Ethiopia
  606. variant*et**Ethiopia
  607. layout*za*South Africa
  608. variant*za**South Africa
  609. layout*mao*Maori
  610. variant*mao**Maori
  611. layout*am*Armenia
  612. variant*am**Armenia
  613. variant*am*eastern-alt*Armenia - Alternative Eastern
  614. variant*am*western*Armenia - Western
  615. variant*am*phonetic-alt*Armenia - Alternative Phonetic
  616. variant*am*eastern*Armenia - Eastern
  617. variant*am*phonetic*Armenia - Phonetic
  618. layout*latam*Latin American
  619. variant*latam**Latin American
  620. variant*latam*deadtilde*Latin American - Include dead tilde
  621. variant*latam*sundeadkeys*Latin American - Sun dead keys
  622. variant*latam*nodeadkeys*Latin American - Eliminate dead keys
  623. layout*nec_vndr/jp*Japan (PC-98xx Series)
  624. variant*nec_vndr/jp**Japan (PC-98xx Series)
  625. layout*ie*Ireland
  626. variant*ie**Ireland
  627. variant*ie*ogam_is434*Ireland - Ogham IS434
  628. variant*ie*CloGaelach*Ireland - CloGaelach
  629. variant*ie*ogam*Ireland - Ogham
  630. variant*ie*UnicodeExpert*Ireland - UnicodeExpert
  631. layout*pt*Portugal
  632. variant*pt**Portugal
  633. variant*pt*sundeadkeys*Portugal - Sun dead keys
  634. variant*pt*nativo-epo*Portugal - Nativo for Esperanto
  635. variant*pt*mac_sundeadkeys*Portugal - Macintosh, Sun dead keys
  636. variant*pt*mac_nodeadkeys*Portugal - Macintosh, eliminate dead keys
  637. variant*pt*nodeadkeys*Portugal - Eliminate dead keys
  638. variant*pt*nativo-us*Portugal - Nativo for USA keyboards
  639. variant*pt*nativo*Portugal - Nativo
  640. variant*pt*mac*Portugal - Macintosh
  641. layout*ng*Nigeria
  642. variant*ng**Nigeria
  643. variant*ng*igbo*Nigeria - Igbo
  644. variant*ng*yoruba*Nigeria - Yoruba
  645. variant*ng*hausa*Nigeria - Hausa
  646. layout*lv*Latvia
  647. variant*lv**Latvia
  648. variant*lv*tilde*Latvia - Tilde (~) variant
  649. variant*lv*fkey*Latvia - F-letter (F) variant
  650. variant*lv*apostrophe*Latvia - Apostrophe () variant
  651. layout*tr*Turkey
  652. variant*tr**Turkey
  653. variant*tr*sundeadkeys*Turkey - Sun dead keys
  654. variant*tr*ku*Turkey - Kurdish, Latin Q
  655. variant*tr*alt*Turkey - Alt-Q
  656. variant*tr*ku_alt*Turkey - Kurdish, Latin Alt-Q
  657. variant*tr*f*Turkey - (F)
  658. variant*tr*ku_f*Turkey - Kurdish, (F)
  659. variant*tr*crh_alt*Turkey - Crimean Tatar (Turkish Alt-Q)
  660. variant*tr*intl*Turkey - International (with dead keys)
  661. variant*tr*crh*Turkey - Crimean Tatar (Turkish Q)
  662. variant*tr*crh_f*Turkey - Crimean Tatar (Turkish F)
  663. layout*is*Iceland
  664. variant*is**Iceland
  665. variant*is*dvorak*Iceland - Dvorak
  666. variant*is*Sundeadkeys*Iceland - Sun dead keys
  667. variant*is*nodeadkeys*Iceland - Eliminate dead keys
  668. variant*is*mac*Iceland - Macintosh
  669. layout*rs*Serbia
  670. variant*rs**Serbia
  671. variant*rs*latinyz*Serbia - Latin qwerty
  672. variant*rs*latin*Serbia - Latin
  673. variant*rs*alternatequotes*Serbia - With guillemets
  674. variant*rs*yz*Serbia - Z and ZHE swapped
  675. variant*rs*latinunicodeyz*Serbia - Latin Unicode qwerty
  676. variant*rs*latinalternatequotes*Serbia - Latin with guillemets
  677. variant*rs*latinunicode*Serbia - Latin Unicode
  678. layout*gh*Ghana
  679. variant*gh**Ghana
  680. variant*gh*hausa*Ghana - Hausa
  681. variant*gh*ewe*Ghana - Ewe
  682. variant*gh*generic*Ghana - Multilingual
  683. variant*gh*ga*Ghana - Ga
  684. variant*gh*fula*Ghana - Fula
  685. variant*gh*akan*Ghana - Akan
  686. layout*ma*Morocco
  687. variant*ma**Morocco
  688. variant*ma*tifinagh-phonetic*Morocco - Tifinagh Phonetic
  689. variant*ma*tifinagh-extended-phonetic*Morocco - Tifinagh Extended Phonetic
  690. variant*ma*tifinagh-extended*Morocco - Tifinagh Extended
  691. variant*ma*tifinagh*Morocco - Tifinagh
  692. variant*ma*french*Morocco - French
  693. variant*ma*tifinagh-alt-phonetic*Morocco - Tifinagh Alternative Phonetic
  694. variant*ma*tifinagh-alt*Morocco - Tifinagh Alternative
  695. layout*fo*Faroe Islands
  696. variant*fo**Faroe Islands
  697. variant*fo*nodeadkeys*Faroe Islands - Eliminate dead keys
  698. layout*mv*Maldives
  699. variant*mv**Maldives
  700. layout*bd*Bangladesh
  701. variant*bd**Bangladesh
  702. variant*bd*probhat*Bangladesh - Probhat
  703. layout*nl*Netherlands
  704. variant*nl**Netherlands
  705. variant*nl*sundeadkeys*Netherlands - Sun dead keys
  706. variant*nl*std*Netherlands - Standard
  707. variant*nl*mac*Netherlands - Macintosh
  708. layout*br*Brazil
  709. variant*br**Brazil
  710. variant*br*dvorak*Brazil - Dvorak
  711. variant*br*nativo-us*Brazil - Nativo for USA keyboards
  712. variant*br*nativo-epo*Brazil - Nativo for Esperanto
  713. variant*br*nodeadkeys*Brazil - Eliminate dead keys
  714. variant*br*nativo*Brazil - Nativo
  715. layout*jp*Japan
  716. variant*jp**Japan
  717. variant*jp*kana*Japan - Kana
  718. variant*jp*OADG109A*Japan - OADG 109A
  719. layout*sk*Slovakia
  720. variant*sk**Slovakia
  721. variant*sk*qwerty*Slovakia - qwerty
  722. variant*sk*bksl*Slovakia - Extended Backslash
  723. variant*sk*qwerty_bksl*Slovakia - qwerty, extended Backslash
  724. layout*cd*Congo, Democratic Republic of the
  725. variant*cd**Congo, Democratic Republic of the
  726. layout*tj*Tajikistan
  727. variant*tj**Tajikistan
  728. variant*tj*legacy*Tajikistan - Legacy
  729. layout*hr*Croatia
  730. variant*hr**Croatia
  731. variant*hr*unicodeus*Croatia - US keyboard with Croatian digraphs
  732. variant*hr*unicode*Croatia - Use Croatian digraphs
  733. variant*hr*alternatequotes*Croatia - Use guillemets for quotes
  734. variant*hr*us*Croatia - US keyboard with Croatian letters
  735. layout*pl*Poland
  736. variant*pl**Poland
  737. variant*pl*ru_phonetic_dvorak*Poland - Russian phonetic Dvorak
  738. variant*pl*csb*Poland - Kashubian
  739. variant*pl*dvorak_altquotes*Poland - Dvorak, Polish quotes on key "1/!"
  740. variant*pl*dvorak*Poland - Dvorak
  741. variant*pl*qwertz*Poland - qwertz
  742. variant*pl*dvorak_quotes*Poland - Dvorak, Polish quotes on quotemark key
  743. layout*si*Slovenia
  744. variant*si**Slovenia
  745. variant*si*us*Slovenia - US keyboard with Slovenian letters
  746. variant*si*alternatequotes*Slovenia - Use guillemets for quotes
  747. layout*il*Israel
  748. variant*il**Israel
  749. variant*il*biblical*Israel - Biblical Hebrew (Tiro)
  750. variant*il*lyx*Israel - lyx
  751. variant*il*phonetic*Israel - Phonetic
  752. layout*in*India
  753. variant*in**India
  754. variant*in*urd-phonetic*India - Urdu, Phonetic
  755. variant*in*guru*India - Gurmukhi
  756. variant*in*guj*India - Gujarati
  757. variant*in*bolnagri*India - Hindi Bolnagri
  758. variant*in*urd-phonetic3*India - Urdu, Alternative phonetic
  759. variant*in*jhelum*India - Gurmukhi Jhelum
  760. variant*in*kan*India - Kannada
  761. variant*in*mal*India - Malayalam
  762. variant*in*mal_lalitha*India - Malayalam Lalitha
  763. variant*in*tam_unicode*India - Tamil Unicode
  764. variant*in*tam*India - Tamil
  765. variant*in*ben*India - Bengali
  766. variant*in*tam_TSCII*India - Tamil TSCII Typewriter
  767. variant*in*hin-wx*India - Hindi Wx
  768. variant*in*tel*India - Telugu
  769. variant*in*urd-winkeys*India - Urdu, Winkeys
  770. variant*in*ori*India - Oriya
  771. variant*in*tam_TAB*India - Tamil TAB Typewriter
  772. variant*in*ben_probhat*India - Bengali Probhat
  773. layout*mt*Malta
  774. variant*mt**Malta
  775. variant*mt*us*Malta - Maltese keyboard with US layout
  776. layout*es*Spain
  777. variant*es**Spain
  778. variant*es*deadtilde*Spain - Include dead tilde
  779. variant*es*dvorak*Spain - Dvorak
  780. variant*es*sundeadkeys*Spain - Sun dead keys
  781. variant*es*nodeadkeys*Spain - Eliminate dead keys
  782. variant*es*cat*Spain - Catalan variant with middle-dot L
  783. variant*es*mac*Spain - Macintosh
  784. variant*es*ast*Spain - Asturian variant with bottom-dot H and bottom-dot L
  785. layout*mk*Macedonia
  786. variant*mk**Macedonia
  787. variant*mk*nodeadkeys*Macedonia - Eliminate dead keys
  788. layout*gb*United Kingdom
  789. variant*gb**United Kingdom
  790. variant*gb*dvorakukp*United Kingdom - Dvorak (UK Punctuation)
  791. variant*gb*dvorak*United Kingdom - Dvorak
  792. variant*gb*intl*United Kingdom - International (with dead keys)
  793. variant*gb*colemak*United Kingdom - Colemak
  794. variant*gb*mac*United Kingdom - Macintosh
  795. layout*ch*Switzerland
  796. variant*ch**Switzerland
  797. variant*ch*fr_sundeadkeys*Switzerland - French, Sun dead keys
  798. variant*ch*fr_mac*Switzerland - French (Macintosh)
  799. variant*ch*fr*Switzerland - French
  800. variant*ch*fr_nodeadkeys*Switzerland - French, eliminate dead keys
  801. variant*ch*de_sundeadkeys*Switzerland - German, Sun dead keys
  802. variant*ch*de_nodeadkeys*Switzerland - German, eliminate dead keys
  803. variant*ch*de_mac*Switzerland - German (Macintosh)
  804. layout*az*Azerbaijan
  805. variant*az**Azerbaijan
  806. variant*az*cyrillic*Azerbaijan - Cyrillic
  807. layout*bg*Bulgaria
  808. variant*bg**Bulgaria
  809. variant*bg*phonetic*Bulgaria - Traditional Phonetic
  810. variant*bg*bas_phonetic*Bulgaria - Standard Phonetic
  811. layout*la*Laos
  812. variant*la**Laos
  813. layout*lt*Lithuania
  814. variant*lt**Lithuania
  815. variant*lt*us*Lithuania - US keyboard with Lithuanian letters
  816. variant*lt*lekp*Lithuania - LEKP
  817. variant*lt*lekpa*Lithuania - LEKPa
  818. variant*lt*std*Lithuania - Standard
  819. variant*lt*ibm*Lithuania - IBM (LST 1205-92)
  820. layout*no*Norway
  821. variant*no**Norway
  822. variant*no*mac_nodeadkeys*Norway - Macintosh, eliminate dead keys
  823. variant*no*dvorak*Norway - Dvorak
  824. variant*no*smi_nodeadkeys*Norway - Northern Saami, eliminate dead keys
  825. variant*no*nodeadkeys*Norway - Eliminate dead keys
  826. variant*no*smi*Norway - Northern Saami
  827. variant*no*mac*Norway - Macintosh
  828. layout*ca*Canada
  829. variant*ca**Canada
  830. variant*ca*multi*Canada - Multilingual, first part
  831. variant*ca*fr-dvorak*Canada - French Dvorak
  832. variant*ca*eng*Canada - English
  833. variant*ca*shs*Canada - Secwepemctsin
  834. variant*ca*kut*Canada - Ktunaxa
  835. variant*ca*multix*Canada - Multilingual
  836. variant*ca*multi-2gr*Canada - Multilingual, second part
  837. variant*ca*ike*Canada - Inuktitut
  838. variant*ca*fr-legacy*Canada - French (legacy)
  839. layout*iq*Iraq
  840. variant*iq**Iraq
  841. variant*iq*ku*Iraq - Kurdish, Latin Q
  842. variant*iq*ku_ara*Iraq - Kurdish, Arabic-Latin
  843. variant*iq*ku_alt*Iraq - Kurdish, Latin Alt-Q
  844. variant*iq*ku_f*Iraq - Kurdish, (F)
  845. layout*me*Montenegro
  846. variant*me**Montenegro
  847. variant*me*cyrillic*Montenegro - Cyrillic
  848. variant*me*latinunicode*Montenegro - Latin unicode
  849. variant*me*latinyz*Montenegro - Latin qwerty
  850. variant*me*latinalternatequotes*Montenegro - Latin with guillemets
  851. variant*me*cyrillicyz*Montenegro - Cyrillic, Z and ZHE swapped
  852. variant*me*latinunicodeyz*Montenegro - Latin unicode qwerty
  853. variant*me*cyrillicalternatequotes*Montenegro - Cyrillic with guillemets
  854. layout*th*Thailand
  855. variant*th**Thailand
  856. variant*th*pat*Thailand - Pattachote
  857. variant*th*tis*Thailand - TIS-820.2538
  858. layout*ara*Arabic
  859. variant*ara**Arabic
  860. variant*ara*qwerty*Arabic - qwerty
  861. variant*ara*azerty*Arabic - azerty
  862. variant*ara*azerty_digits*Arabic - azerty/digits
  863. variant*ara*buckwalter*Arabic - Buckwalter
  864. variant*ara*qwerty_digits*Arabic - qwerty/digits
  865. variant*ara*digits*Arabic - digits
  866. layout*epo*Esperanto
  867. variant*epo**Esperanto
  868. variant*epo*legacy*Esperanto - displaced semicolon and quote (obsolete)
  869. layout*ir*Iran
  870. variant*ir**Iran
  871. variant*ir*pro_keypad*Iran - Pro Keypad
  872. variant*ir*keypad*Iran - Keypad
  873. variant*ir*pro*Iran - Pro
  874. variant*ir*ku*Iran - Kurdish, Latin Q
  875. variant*ir*ku_ara*Iran - Kurdish, Arabic-Latin
  876. variant*ir*ku_alt*Iran - Kurdish, Latin Alt-Q
  877. variant*ir*ku_f*Iran - Kurdish, (F)
  878. layout*by*Belarus
  879. variant*by**Belarus
  880. variant*by*winkeys*Belarus - Winkeys
  881. variant*by*latin*Belarus - Latin
  882. layout*vn*Vietnam
  883. variant*vn**Vietnam
  884. layout*kg*Kyrgyzstan
  885. variant*kg**Kyrgyzstan
  886. variant*kg*phonetic*Kyrgyzstan - Phonetic
  887. layout*ua*Ukraine
  888. variant*ua**Ukraine
  889. variant*ua*phonetic*Ukraine - Phonetic
  890. variant*ua*homophonic*Ukraine - Homophonic
  891. variant*ua*crh_alt*Ukraine - Crimean Tatar (Turkish Alt-Q)
  892. variant*ua*winkeys*Ukraine - Winkeys
  893. variant*ua*rstu_ru*Ukraine - Standard RSTU on Russian layout
  894. variant*ua*unicode*Ukraine - Unicode
  895. variant*ua*typewriter*Ukraine - Typewriter
  896. variant*ua*crh*Ukraine - Crimean Tatar (Turkish Q)
  897. variant*ua*crh_f*Ukraine - Crimean Tatar (Turkish F)
  898. variant*ua*rstu*Ukraine - Standard RSTU
  899. layout*ru*Russia
  900. variant*ru**Russia
  901. variant*ru*os_legacy*Russia - Ossetian, legacy
  902. variant*ru*udm*Russia - Udmurt
  903. variant*ru*os_winkeys*Russia - Ossetian, Winkeys
  904. variant*ru*cv_latin*Russia - Chuvash Latin
  905. variant*ru*kom*Russia - Komi
  906. variant*ru*phonetic*Russia - Phonetic
  907. variant*ru*legacy*Russia - Legacy
  908. variant*ru*cv*Russia - Chuvash
  909. variant*ru*xal*Russia - Kalmyk
  910. variant*ru*typewriter*Russia - Typewriter
  911. variant*ru*sah*Russia - Yakut
  912. variant*ru*tt*Russia - Tatar
  913. layout*fi*Finland
  914. variant*fi**Finland
  915. variant*fi*classic*Finland - Classic
  916. variant*fi*nodeadkeys*Finland - Eliminate dead keys
  917. variant*fi*smi*Finland - Northern Saami
  918. variant*fi*mac*Finland - Macintosh
  919. layout*ro*Romania
  920. variant*ro**Romania
  921. variant*ro*std_cedilla*Romania - Standard (Cedilla)
  922. variant*ro*crh_alt*Romania - Crimean Tatar (Turkish Alt-Q)
  923. variant*ro*winkeys*Romania - Winkeys
  924. variant*ro*crh_dobruca2*Romania - Crimean Tatar (Dobruca-2 Q)
  925. variant*ro*std*Romania - Standard
  926. variant*ro*crh_f*Romania - Crimean Tatar (Turkish F)
  927. variant*ro*crh_dobruca1*Romania - Crimean Tatar (Dobruca-1 Q)
  928. variant*ro*cedilla*Romania - Cedilla
  929. layout*kz*Kazakhstan
  930. variant*kz**Kazakhstan
  931. variant*kz*kazrus*Kazakhstan - Kazakh with Russian
  932. variant*kz*ruskaz*Kazakhstan - Russian with Kazakh
  933. layout*gr*Greece
  934. variant*gr**Greece
  935. variant*gr*extended*Greece - Extended
  936. variant*gr*nodeadkeys*Greece - Eliminate dead keys
  937. variant*gr*simple*Greece - Simple
  938. variant*gr*polytonic*Greece - Polytonic
  939. layout*it*Italy
  940. variant*it**Italy
  941. variant*it*nodeadkeys*Italy - Eliminate dead keys
  942. variant*it*mac*Italy - Macintosh
  943. variant*it*geo*Italy - Georgian
  944. layout*de*Germany
  945. variant*de**Germany
  946. variant*de*dvorak*Germany - Dvorak
  947. variant*de*sundeadkeys*Germany - Sun dead keys
  948. variant*de*deadgraveacute*Germany - Dead grave acute
  949. variant*de*ro*Germany - Romanian keyboard with German letters
  950. variant*de*neo*Germany - Neo 2
  951. variant*de*deadacute*Germany - Dead acute
  952. variant*de*ro_nodeadkeys*Germany - Romanian keyboard with German letters, eliminate dead keys
  953. variant*de*mac_nodeadkeys*Germany - Macintosh, eliminate dead keys
  954. variant*de*nodeadkeys*Germany - Eliminate dead keys
  955. variant*de*dsb*Germany - Lower Sorbian
  956. variant*de*qwerty*Germany - qwerty
  957. variant*de*dsb_qwertz*Germany - Lower Sorbian (qwertz)
  958. variant*de*mac*Germany - Macintosh
  959. layout*bt*Bhutan
  960. variant*bt**Bhutan
  961. layout*be*Belgium
  962. variant*be**Belgium
  963. variant*be*oss_latin9*Belgium - Alternative, latin-9 only
  964. variant*be*sundeadkeys*Belgium - Sun dead keys
  965. variant*be*nodeadkeys*Belgium - Eliminate dead keys
  966. variant*be*wang*Belgium - Wang model 724 azerty
  967. variant*be*iso-alternate*Belgium - ISO Alternate
  968. variant*be*oss*Belgium - Alternative
  969. variant*be*oss_sundeadkeys*Belgium - Alternative, Sun dead keys
  970. layout*braille*Braille
  971. variant*braille**Braille
  972. variant*braille*left_hand*Braille - Left hand
  973. variant*braille*right_hand*Braille - Right hand
  974. layout*uz*Uzbekistan
  975. variant*uz**Uzbekistan
  976. variant*uz*crh_alt*Uzbekistan - Crimean Tatar (Turkish Alt-Q)
  977. variant*uz*latin*Uzbekistan - Latin
  978. variant*uz*crh*Uzbekistan - Crimean Tatar (Turkish Q)
  979. variant*uz*crh_f*Uzbekistan - Crimean Tatar (Turkish F)
  980. layout*us*USA
  981. variant*us**USA
  982. variant*us*dvorak*USA - Dvorak
  983. variant*us*alt-intl*USA - Alternative international (former us_intl)
  984. variant*us*dvp*USA - Programmer Dvorak
  985. variant*us*colemak*USA - Colemak
  986. variant*us*dvorak-classic*USA - Classic Dvorak
  987. variant*us*dvorak-intl*USA - Dvorak international
  988. variant*us*euro*USA - With EuroSign on 5
  989. variant*us*olpc2*USA - Group toggle on multiply/divide key
  990. variant*us*altgr-intl*USA - International (AltGr dead keys)
  991. variant*us*rus*USA - Russian phonetic
  992. variant*us*intl*USA - International (with dead keys)
  993. variant*us*dvorak-l*USA - Left handed Dvorak
  994. variant*us*dvorak-r*USA - Right handed Dvorak
  995. variant*us*mac*USA - Macintosh
  996. variant*us*chr*USA - Cherokee
  997. layout*cz*Czechia
  998. variant*cz**Czechia
  999. variant*cz*qwerty*Czechia - qwerty
  1000. variant*cz*ucw*Czechia - UCW layout (accented letters only)
  1001. variant*cz*qwerty_bksl*Czechia - qwerty, extended Backslash
  1002. variant*cz*bksl*Czechia - With <\|> key
  1003. layout*mm*Myanmar
  1004. variant*mm**Myanmar
  1005. layout*fr*France
  1006. variant*fr**France
  1007. variant*fr*dvorak*France - Dvorak
  1008. variant*fr*oss_latin9*France - Alternative, latin-9 only
  1009. variant*fr*sundeadkeys*France - Sun dead keys
  1010. variant*fr*oss_nodeadkeys*France - Alternative, eliminate dead keys
  1011. variant*fr*bepo*France - Bepo, ergonomic, Dvorak way
  1012. variant*fr*latin9_nodeadkeys*France - (Legacy) Alternative, eliminate dead keys
  1013. variant*fr*geo*France - Georgian AZERTY Tskapo
  1014. variant*fr*bepo_latin9*France - Bepo, ergonomic, Dvorak way, latin-9 only
  1015. variant*fr*nodeadkeys*France - Eliminate dead keys
  1016. variant*fr*latin9*France - (Legacy) Alternative
  1017. variant*fr*latin9_sundeadkeys*France - (Legacy) Alternative, Sun dead keys
  1018. variant*fr*bre*France - Breton
  1019. variant*fr*oss*France - Alternative
  1020. variant*fr*oss_sundeadkeys*France - Alternative, Sun dead keys
  1021. variant*fr*mac*France - Macintosh
  1022. layout*ba*Bosnia and Herzegovina
  1023. variant*ba**Bosnia and Herzegovina
  1024. variant*ba*unicode*Bosnia and Herzegovina - Use Bosnian digraphs
  1025. variant*ba*us*Bosnia and Herzegovina - US keyboard with Bosnian letters
  1026. variant*ba*unicodeus*Bosnia and Herzegovina - US keyboard with Bosnian digraphs
  1027. variant*ba*alternatequotes*Bosnia and Herzegovina - Use guillemets for quotes
  1028. layout*ge*Georgia
  1029. variant*ge**Georgia
  1030. variant*ge*ru*Georgia - Russian
  1031. variant*ge*mess*Georgia - MESS
  1032. variant*ge*ergonomic*Georgia - Ergonomic
  1033. variant*ge*os*Georgia - Ossetian
  1034. layout*kh*Cambodia
  1035. variant*kh**Cambodia
  1036. layout*af*Afghanistan
  1037. variant*af**Afghanistan
  1038. variant*af*olpc-ps*Afghanistan - OLPC Pashto
  1039. variant*af*ps*Afghanistan - Pashto
  1040. variant*af*olpc-uz*Afghanistan - OLPC Southern Uzbek
  1041. variant*af*uz*Afghanistan - Southern Uzbek
  1042. variant*af*olpc-fa*Afghanistan - OLPC Dari
  1043. layout*dk*Denmark
  1044. variant*dk**Denmark
  1045. variant*dk*mac_nodeadkeys*Denmark - Macintosh, eliminate dead keys
  1046. variant*dk*dvorak*Denmark - Dvorak
  1047. variant*dk*nodeadkeys*Denmark - Eliminate dead keys
  1048. variant*dk*mac*Denmark - Macintosh
  1049. layout*ad*Andorra
  1050. variant*ad**Andorra
  1051. layout*al*Albania
  1052. variant*al**Albania
  1053. '
  1054. # kbdnames='model*logicdp*Logitech Cordless Desktop Pro
  1055. # model*omnikey101*Northgate OmniKey 101
  1056. # ...
  1057. # layout*el*Greek
  1058. # ...
  1059. # variant*it*nodeadkeys*Eliminate dead keys'
  1060.  
  1061. ## CODESETS ##
  1062.  
  1063. codesets='Arabic*. Arabic
  1064. Armenian*# Armenian
  1065. CyrKoi*# Cyrillic - KOI8-R and KOI8-U
  1066. CyrAsia*# Cyrillic - non-Slavic languages
  1067. CyrSlav*# Cyrillic - Slavic languages (also Bosnian and Serbian Latin)
  1068. Ethiopian*. Ethiopic
  1069. Georgian*# Georgian
  1070. Greek*# Greek
  1071. Hebrew*# Hebrew
  1072. Lao*# Lao
  1073. Lat15*# Latin1 and Latin5 - western Europe and Turkic languages
  1074. Lat2*# Latin2 - central Europe and Romanian
  1075. Lat38*# Latin3 and Latin8 - Chichewa; Esperanto; Irish; Maltese and Welsh
  1076. Lat7*# Latin7 - Lithuanian; Latvian; Maori and Marshallese
  1077. Vietnamese*. Latin - Vietnamese
  1078. Thai*# Thai
  1079. Uni1*. Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic
  1080. Uni2*. Combined - Latin; Slavic Cyrillic; Greek
  1081. Uni3*. Combined - Latin; Slavic and non-Slavic Cyrillic'
  1082.  
  1083. db_capb backup
  1084. CAPB="$RET"
  1085. detect_keyboard=false
  1086. case $CAPB in
  1087.     *plugin-detect-keyboard*)
  1088.     detect_keyboard=:
  1089.     ;;
  1090. esac
  1091.  
  1092. # Set default value for a question only if it is not seen by the user
  1093. db_default () {
  1094.     if \
  1095.     [ -f $CONFIGFILE ] \
  1096.     || { db_fget $1 seen && [ "$RET" = false ]; }
  1097.     then
  1098.     db_set $1 "$2"
  1099.     fi
  1100. }
  1101.  
  1102. # A high level function to ask questions about the keyboard model,
  1103. # layout and variant
  1104. ask_debconf () {
  1105.     local template priority prefix default_code default_description choices
  1106.  
  1107.     template=$1     # The template to ask
  1108.     priority=$2     # The priority for the question
  1109.     prefix=$3       # The prefix for $kbdnames
  1110.     default_code=$4 # The default choice (optional)
  1111.     choices=`echo "$kbdnames" | grep "^$prefix\*" | 
  1112.         sed -e "s/^$prefix\*[^\*]*\*//" -e 's/,/\\\\,/g' | LC_ALL=C sort |
  1113.         sed -e 's/$/,/'`
  1114.     choices=`echo $choices | sed 's/, *$//'`
  1115.  
  1116.     db_subst $template CHOICES "$choices"
  1117.     default_description=`echo "$kbdnames" |  
  1118.         grep "^$prefix\*${default_code}\*" |
  1119.         sed -e "s/^$prefix\*${default_code}\*//"`
  1120.     if [ -z "$default_description" ]; then
  1121.     # Vor XkbVariant the empty string is usualy a sensible default
  1122.     default_description=`echo "$kbdnames" |  
  1123.             grep "^$prefix\*\*" |
  1124.             sed -e "s/^$prefix\*\*//"`
  1125.     fi
  1126.     if [ -n "$default_description" ]; then
  1127.     db_default $template "$default_description"
  1128.     elif [ -n "$default_code" ]; then
  1129.     # A default was requested, but we couldn't resolve it to a
  1130.     # description, so we'd better ask.
  1131.     priority=critical
  1132.     fi
  1133.  
  1134.     db_input $priority $template || true
  1135.     db_go || return 255
  1136.     db_get $template
  1137.     RET=`echo "$kbdnames" | grep "^$prefix\*[^\*]*\*" |
  1138.              sed 's/  */ /g' |
  1139.              grep "\*$RET\$" |
  1140.              sed -e "s/^$prefix\*\([^\*]*\)\*.*/\1/" `
  1141.     return 0
  1142. }
  1143.  
  1144. # The guess arch code is taken from "console-data.conf"
  1145. # (translated from Perl to shell)
  1146.  
  1147. # SUBARCH    KEYMAP SET    DETECTION
  1148. # m68k/atari    atari        "Model: Atari"
  1149. # m68k/amiga    amiga        "Model: Amiga"
  1150. # m68k/mac    mac        "Model: Macintosh"
  1151. # m68k/mvme    pc        "Model: Motorola"
  1152. # m68k/bvme    pc        "Model: BVME[46]000"
  1153. # m68k/{sun,apollo,next,q40,hp300} Not supported by Debian
  1154.  
  1155. # ppc/apus    amiga        "machine: Amiga"
  1156. # ppc/chrp    pc,mac        "machine: CHRP"
  1157. # ppc/pmac    mac        "machine: PowerMac|[Pp]ower[Bb]ook*|Power|iMac*|PowerMac1*"
  1158. # ppc/prep    pc        "machine: PReP"
  1159. # ppc/ps3    pc        "platform: PS3"
  1160. # ppc/cell    pc        "platform: Cell"
  1161. # ppc/{bbox,mbx,ppc64,82xx,8xx} Not yet supported by Debian
  1162.  
  1163. # arm/*        pc        (refered to as 'arm' only)
  1164.  
  1165. guess_arch () {
  1166.     local arch subarch line
  1167.  
  1168.     if which archdetect >/dev/null; then
  1169.     archdetect
  1170.     return 0
  1171.     fi
  1172.  
  1173.     arch=`dpkg --print-installation-architecture`
  1174.     
  1175.     if [ "$arch" = 'powerpc' -o "$arch" = 'm68k' ]; then
  1176.     if [ "$arch" = powerpc ]; then
  1177.         line=`sed -n 's/^platform.*: *//p' /proc/cpuinfo`
  1178.         if [ "$line" = PS3 ] || [ "$line" = Cell ]; then
  1179.         subarch=`echo $line|tr A-Z a-z`
  1180.         else
  1181.         line=`sed -n 's/^machine.*: *//p' /proc/cpuinfo`
  1182.         if [ "$line" = '' ]; then
  1183.             echo unknown
  1184.             return 0
  1185.         fi
  1186.         subarch=`echo $line|tr A-Z a-z`
  1187.         fi
  1188.     elif [ "$arch" = m68k ]; then
  1189.         line=`sed -n 's/^Model.*: *//p' /proc/hardware`
  1190.         if [ "$line" = '' ]; then
  1191.         echo unknown
  1192.         return 0
  1193.         fi
  1194.         subarch=`echo $line|tr A-Z a-z`
  1195.     fi
  1196.     case "$subarch" in
  1197.         *amiga*)
  1198.         subarch=amiga
  1199.         ;;
  1200.         *chrp*)
  1201.         subarch=chrp
  1202.         ;;
  1203.         *prep*)
  1204.         subarch=prep
  1205.         ;;
  1206.         *macintosh*|*powermac*|*powerbook*|*power*|*imac*|*powermac1*)
  1207.         subarch=mac
  1208.         ;;
  1209.         *atari*)
  1210.         subarch=atari
  1211.         ;;
  1212.         *motorola*)
  1213.         subarch=mvme
  1214.         ;;
  1215.         *bvme*)
  1216.         subarch=bvme
  1217.         ;;
  1218.         *)
  1219.         subarch=`echo $subarch|sed  's/^\s*//'`
  1220.         ;;
  1221.     esac
  1222.     arch="$arch/$subarch"
  1223.     fi
  1224.     echo $arch
  1225.     return 0
  1226. }
  1227.  
  1228. available_fontfaces () {
  1229.     echo "$fontsets" | LC_ALL=C sort | \
  1230.     grep "^$codeset-" | \
  1231.     sed -e "s/^$codeset-//" \
  1232.         -e 's/[0-9][0-9]*x[0-9][0-9]*$//' \
  1233.         -e 's/[0-9]*$//' | \
  1234.     uniq
  1235. }
  1236.  
  1237. available_fontsizes () {
  1238.     echo "$fontsets" | LC_ALL=C sort | \
  1239.     grep "^$codeset-$fontface[0-9]" | \
  1240.     sed -e "s/^$codeset-$fontface//" | \
  1241.     uniq
  1242. }
  1243.  
  1244. decode_codeset () {
  1245.     pattern="^$(echo "$*" | sed 's/[^ #()0-9;A-Za-z-]/\\&/g')\\*"
  1246.     echo "$codesets" | \
  1247.     grep "$pattern" | \
  1248.     sed 's/.*[*]//'
  1249. }
  1250.  
  1251. encode_codeset () {
  1252.     pattern="\\*$(echo "$*" | sed 's/[^ #()0-9;A-Za-z-]/\\&/g')\$"
  1253.     echo "$codesets" | \
  1254.     grep "$pattern" | \
  1255.     sed 's/[*].*//'
  1256. }
  1257.  
  1258. if which locale >/dev/null; then
  1259.     eval `locale`
  1260. fi
  1261.  
  1262. if [ "$LC_CTYPE"  -a "$LC_CTYPE" != C ]; then
  1263.     locale=$LC_CTYPE
  1264. elif db_get debian-installer/locale && [ "$RET" ]; then
  1265.     locale="$RET"
  1266. else
  1267.     locale=C
  1268. fi
  1269.  
  1270. case "$locale" in
  1271.     *KOI8*|*koi8*)
  1272.     default_codeset=CyrKoi
  1273.     codeset_priority=low
  1274.     ;;
  1275.     aa_*)
  1276.     default_codeset=Lat15
  1277.     codeset_priority=low
  1278.     ;;
  1279.     af_*)
  1280.     default_codeset=Lat15
  1281.     codeset_priority=low
  1282.     ;;
  1283.     am_*)
  1284.     default_codeset=Ethiopic
  1285.     codeset_priority=low
  1286.     ;;
  1287.     an_*)
  1288.     default_codeset=Lat15
  1289.     codeset_priority=low
  1290.     ;;
  1291.     ar_*)
  1292.     default_codeset=Arabic
  1293.     codeset_priority=low
  1294.     ;;
  1295.     az_*)
  1296.     default_codeset=Uni3
  1297.     codeset_priority=low
  1298.     ;;
  1299.     be_*)
  1300.     default_codeset=CyrSlav
  1301.     codeset_priority=low
  1302.     ;;
  1303.     bg_*)
  1304.     default_codeset=CyrSlav
  1305.     codeset_priority=low
  1306.     ;;
  1307.     bn_*)
  1308.     default_codeset=unsupported
  1309.     codeset_priority=low
  1310.     ;;
  1311.     br_*)
  1312.     default_codeset=Lat15
  1313.     codeset_priority=low
  1314.     ;;
  1315.     bs_*)
  1316.     default_codeset=Uni3
  1317.     codeset_priority=low
  1318.     ;;
  1319.     byn_*)
  1320.     default_codeset=Ethiopian
  1321.     codeset_priority=low
  1322.     ;;
  1323.     ca_*)
  1324.     default_codeset=Lat15
  1325.     codeset_priority=low
  1326.     ;;
  1327.     cs_*)
  1328.     default_codeset=Lat2
  1329.     codeset_priority=low
  1330.     ;;
  1331.     cy_*)
  1332.     default_codeset=Lat38
  1333.     codeset_priority=low
  1334.     ;;
  1335.     da_*)
  1336.     default_codeset=Lat15
  1337.     codeset_priority=low
  1338.     ;;
  1339.     de_*)
  1340.     default_codeset=Lat15
  1341.     codeset_priority=low
  1342.     ;;
  1343.     el_*)
  1344.     default_codeset=Greek
  1345.     codeset_priority=low
  1346.     ;;
  1347.     en_*)
  1348.     default_codeset=Lat15
  1349.     codeset_priority=low
  1350.     ;;
  1351.     eo|eo.*|eo_*|eo\@*)
  1352.     default_codeset=Lat38
  1353.     codeset_priority=low
  1354.     ;;
  1355.     es_*)
  1356.     default_codeset=Lat15
  1357.     codeset_priority=low
  1358.     ;;
  1359.     et_*)
  1360.     default_codeset=Lat15
  1361.     codeset_priority=low
  1362.     ;;
  1363.     eu_*)
  1364.     default_codeset=Lat15
  1365.     codeset_priority=low
  1366.     ;;
  1367.     fa_*)
  1368.     default_codeset=Arabic
  1369.     codeset_priority=low
  1370.     ;;
  1371.     fi_*)
  1372.     default_codeset=Lat15
  1373.     codeset_priority=low
  1374.     ;;
  1375.     fo_*)
  1376.     default_codeset=Lat15
  1377.     codeset_priority=low
  1378.     ;;
  1379.     fr_*)
  1380.     default_codeset=Lat15
  1381.     codeset_priority=low
  1382.     ;;
  1383.     ga_*)
  1384.     default_codeset=Lat38
  1385.     codeset_priority=low
  1386.     ;;
  1387.     gd_*)
  1388.     default_codeset=Lat15
  1389.     codeset_priority=low
  1390.     ;;
  1391.     gez_*)
  1392.     default_codeset=Ethiopian
  1393.     codeset_priority=low
  1394.     ;;
  1395.     gl_*)
  1396.     default_codeset=Lat15
  1397.     codeset_priority=low
  1398.     ;;
  1399.     gu_*)
  1400.     default_codeset=unsupported
  1401.     codeset_priority=low
  1402.     ;;
  1403.     gv_*)
  1404.     default_codeset=Lat15
  1405.     codeset_priority=low
  1406.     ;;
  1407.     he_*)
  1408.     default_codeset=Hebrew
  1409.     codeset_priority=low
  1410.     ;;
  1411.     hi_*)
  1412.     default_codeset=unsupported
  1413.     codeset_priority=low
  1414.     ;;
  1415.     hr_*)
  1416.     default_codeset=Lat2
  1417.     codeset_priority=low
  1418.     ;;
  1419.     hu_*)
  1420.     default_codeset=Lat2
  1421.     codeset_priority=low
  1422.     ;;
  1423.     hy_*)
  1424.     default_codeset=Armenian
  1425.     codeset_priority=low
  1426.     ;;
  1427.     id_*)
  1428.     default_codeset=Lat15
  1429.     codeset_priority=low
  1430.     ;;
  1431.     is_*)
  1432.     default_codeset=Lat15
  1433.     codeset_priority=low
  1434.     ;;
  1435.     it_*)
  1436.     default_codeset=Lat15
  1437.     codeset_priority=low
  1438.     ;;
  1439.     iw_*)
  1440.     default_codeset=Hebrew
  1441.     codeset_priority=low
  1442.     ;;
  1443.     ja_*)
  1444.     default_codeset=unsupported
  1445.     codeset_priority=low
  1446.     ;;
  1447.     ka_*)
  1448.     default_codeset=Georgian
  1449.     codeset_priority=low
  1450.     ;;
  1451.     kl_*)
  1452.     default_codeset=Lat15
  1453.     codeset_priority=low
  1454.     ;;
  1455.     kn_*)
  1456.     default_codeset=unsupported
  1457.     codeset_priority=low
  1458.     ;;
  1459.     ko_*)
  1460.     default_codeset=unsupported
  1461.     codeset_priority=low
  1462.     ;;
  1463.     kw_*)
  1464.     default_codeset=Lat15
  1465.     codeset_priority=low
  1466.     ;;
  1467.     lg_*)
  1468.     default_codeset=Lat15 # TODO: This must be ISO-8859-10 (Latin6)
  1469.     codeset_priority=low
  1470.     ;;
  1471.     lo_*)
  1472.     default_codeset=Lao
  1473.     codeset_priority=low
  1474.     ;;
  1475.     lt_*)
  1476.     default_codeset=Lat7
  1477.     codeset_priority=low
  1478.     ;;
  1479.     lv_*)
  1480.     default_codeset=Lat7
  1481.     codeset_priority=low
  1482.     ;;
  1483.     mi_*)
  1484.     default_codeset=Lat7
  1485.     codeset_priority=low
  1486.     ;;
  1487.     mk_*)
  1488.     default_codeset=CyrSlav
  1489.     codeset_priority=low
  1490.     ;;
  1491.     ml_*)
  1492.     default_codeset=unsupported
  1493.     codeset_priority=low
  1494.     ;;
  1495.     mn_*)
  1496.     default_codeset=CyrAsia
  1497.     codeset_priority=low
  1498.     ;;
  1499.     mr_*)
  1500.     default_codeset=unsupported
  1501.     codeset_priority=low
  1502.     ;;
  1503.     ms_*)
  1504.     default_codeset=Lat15 # TODO: Is this correct? (Malay language)
  1505.     codeset_priority=low
  1506.     ;;
  1507.     mt_*)
  1508.     default_codeset=Lat38
  1509.     codeset_priority=low
  1510.     ;;
  1511.     nb_*)
  1512.     default_codeset=Lat15
  1513.     codeset_priority=low
  1514.     ;;
  1515.     ne_*)
  1516.     default_codeset=unsupported
  1517.     codeset_priority=low
  1518.     ;;
  1519.     nl_*)
  1520.     default_codeset=Lat15
  1521.     codeset_priority=low
  1522.     ;;
  1523.     nn_*)
  1524.     default_codeset=Lat15
  1525.     codeset_priority=low
  1526.     ;;
  1527.     oc_*)
  1528.     default_codeset=Lat15
  1529.     codeset_priority=low
  1530.     ;;
  1531.     om_*)
  1532.     default_codeset=Lat15
  1533.     codeset_priority=low
  1534.     ;;
  1535.     pa_*)
  1536.     default_codeset=unsupported
  1537.     codeset_priority=low
  1538.     ;;
  1539.     pl_*)
  1540.     default_codeset=Lat2
  1541.     codeset_priority=low
  1542.     ;;
  1543.     pt_*)
  1544.     default_codeset=Lat15
  1545.     codeset_priority=low
  1546.     ;;
  1547.     ro_*)
  1548.     default_codeset=Lat2
  1549.     codeset_priority=low
  1550.     ;;
  1551.     ru_*)
  1552.     default_codeset=CyrSlav
  1553.     codeset_priority=low
  1554.     ;;
  1555.     se_*)
  1556.     default_codeset=Uni1
  1557.     codeset_priority=low
  1558.     ;;
  1559.     sid_*)
  1560.     default_codeset=Lat15 # TODO: Is this correct? (Sidama language)
  1561.     codeset_priority=low
  1562.     ;;
  1563.     sk_*)
  1564.     default_codeset=Lat2
  1565.     codeset_priority=low
  1566.     ;;
  1567.     sl_*)
  1568.     default_codeset=Lat2
  1569.     codeset_priority=low
  1570.     ;;
  1571.     so_*)
  1572.     default_codeset=Lat15
  1573.     codeset_priority=low
  1574.     ;;
  1575.     sq_*)
  1576.     default_codeset=Lat15
  1577.     codeset_priority=low
  1578.     ;;
  1579.     sr_*)
  1580.     default_codeset=CyrSlav
  1581.     codeset_priority=low
  1582.     ;;
  1583.     st_*)
  1584.     default_codeset=Lat15 # TODO: Is this correct? (Sotho language)
  1585.     codeset_priority=low
  1586.     ;;
  1587.     sv_*)
  1588.     default_codeset=Lat15
  1589.     codeset_priority=low
  1590.     ;;
  1591.     ta_*)
  1592.     default_codeset=unsupported
  1593.     codeset_priority=low
  1594.     ;;
  1595.     te_*)
  1596.     default_codeset=unsupported
  1597.     codeset_priority=low
  1598.     ;;
  1599.     tg_*)
  1600.     default_codeset=CyrAsia
  1601.     codeset_priority=low
  1602.     ;;
  1603.     th_*)
  1604.     default_codeset=Thai
  1605.     codeset_priority=low
  1606.     ;;
  1607.     ti_*)
  1608.     default_codeset=Ethiopian
  1609.     codeset_priority=low
  1610.     ;;
  1611.     tig_*)
  1612.     default_codeset=Ethiopian
  1613.     codeset_priority=low
  1614.     ;;
  1615.     tl_*)
  1616.     default_codeset=Lat15
  1617.     codeset_priority=low
  1618.     ;;
  1619.     tr_*)
  1620.     default_codeset=Lat15
  1621.     codeset_priority=low
  1622.     ;;
  1623.     tt_*)
  1624.     default_codeset=Lat15 # TODO: Is this correct? (Tatar language)
  1625.     codeset_priority=low
  1626.     ;;
  1627.     uk_*)
  1628.     default_codeset=CyrSlav
  1629.     codeset_priority=low
  1630.     ;;
  1631.     ur_*)
  1632.     default_codeset=Arabic
  1633.     codeset_priority=low
  1634.     ;;
  1635.     uz_*)
  1636.     default_codeset=Lat15 # TODO: Is this correct? (Uzbek language)
  1637.     codeset_priority=low
  1638.     ;;
  1639.     uz_*\@cyrillic)
  1640.     default_codeset=CyrAsia
  1641.     codeset_priority=low
  1642.     ;;
  1643.     vi_*)
  1644.     default_codeset=Vietnamese
  1645.     codeset_priority=low
  1646.     ;;
  1647.     wa_*)
  1648.     default_codeset=Lat15
  1649.     codeset_priority=low
  1650.     ;;
  1651.     xh_*)
  1652.     default_codeset=Lat15
  1653.     codeset_priority=low
  1654.     ;;
  1655.     yi_*)
  1656.     default_codeset=Hebrew
  1657.     codeset_priority=low
  1658.     ;;
  1659.     zh_*)
  1660.     default_codeset=unsupported
  1661.     codeset_priority=low
  1662.     ;;
  1663.     zu_*)
  1664.     default_codeset=Lat15
  1665.     codeset_priority=low
  1666.     ;;
  1667.     *)
  1668.     default_codeset=Uni1
  1669.     codeset_priority=high
  1670.     ;;
  1671. esac
  1672. if [ "$default_codeset" = unsupported ]; then
  1673.     default_codeset=Uni1
  1674. fi
  1675.  
  1676. default_codeset="`decode_codeset $default_codeset`"
  1677. if [ -z "$default_codeset" ]; then
  1678.     default_codeset=Uni1
  1679.     codeset_priority=high
  1680. fi
  1681.  
  1682. default_layout=''
  1683. default_variant=''
  1684. if [ -e /etc/console/boottime.kmap.gz ]; then
  1685.     # Upgrade from pre-console-setup; we need to ask if autodetection fails.
  1686.     layout_priority=critical
  1687. else
  1688.     # Probably a fresh installation. If the installation is being automated,
  1689.     # then in the worst case selecting a "us" layout won't break the system,
  1690.     # so drop the priority a little bit.
  1691.     layout_priority=high
  1692. fi
  1693. case "$locale" in
  1694.     # Keyboards for countries
  1695.     *_AL*)
  1696.     default_layout=al  # Albania
  1697.     ;;
  1698.     *_AZ*)
  1699.     default_layout=az  # Azerbaijan
  1700.     ;;
  1701.     *_BD*)
  1702.     default_layout=bd  # Bangladesh
  1703.     ;;
  1704.     *_BE*)
  1705.     default_layout=be  # Belgium
  1706.     ;;
  1707.     *_BG*)
  1708.     default_layout=bg  # Bulgaria
  1709.     layout_priority=critical
  1710.     ;;
  1711.     *_BR*)
  1712.     default_layout=br  # Brazil
  1713.     ;;
  1714.     *_BY*)
  1715.     default_layout=by  # Belarus
  1716.     ;;
  1717.     fr_CA*)
  1718.     default_layout=ca  # Canada
  1719.     ;;
  1720.     *_CA*)
  1721.     default_layout=us  # U.S. English
  1722.     ;;
  1723.     fr_CH*)
  1724.     default_layout=ch  # Switzerland
  1725.     default_variant=fr # French
  1726.     ;;
  1727.     *_CH*)
  1728.     default_layout=ch  # Switzerland
  1729.     layout_priority=critical
  1730.     ;;
  1731.     *_CZ*)
  1732.     default_layout=cz  # Czechia
  1733.     layout_priority=critical
  1734.     ;;
  1735.     *_DK*)
  1736.     default_layout=dk  # Denmark
  1737.     ;;
  1738.     *_EE*)
  1739.     default_layout=ee  # Estonia
  1740.     ;;
  1741.     *_ES*)
  1742.     default_layout=es  # Spain
  1743.     ;;
  1744.     se_FI*)
  1745.     default_layout=fi  # Finland
  1746.     default_variant=smi # Northern Saami
  1747.     ;;
  1748.     *_FI*)
  1749.     default_layout=fi  # Finland
  1750.     default_variant=fi # Finland
  1751.     ;;
  1752.     *_GB*)
  1753.     default_layout=gb  # United Kingdom
  1754.     ;;
  1755.     *_HU*)
  1756.     default_layout=hu  # Hungary
  1757.     ;;
  1758.     *_IE*)
  1759.     default_layout=ie  # Ireland
  1760.     ;;
  1761.     *_IL*)
  1762.     default_layout=il  # Israel
  1763.     layout_priority=critical
  1764.     ;;
  1765.     *_IR*)
  1766.     default_layout=ir  # Iran
  1767.     ;;
  1768.     *_IS*)
  1769.     default_layout=is  # Iceland
  1770.     ;;
  1771.     *_IT*)
  1772.     default_layout=it  # Italy
  1773.     ;;
  1774.     *_JP*)
  1775.     default_layout=jp  # Japan
  1776.     ;;
  1777.     *_LT*)
  1778.     default_layout=lt  # Lithuania
  1779.     layout_priority=critical
  1780.     ;;
  1781.     *_LV*)
  1782.     default_layout=lv  # Latvia
  1783.     ;;
  1784.     *_MA*)
  1785.     default_layout=ma  # Morocco
  1786.     ;;
  1787.     *_MK*)
  1788.     default_layout=mk  # Macedonia
  1789.     ;;
  1790. # According to https://launchpad.net/bugs/129982, Dutch users prefer the US
  1791. # keymap.
  1792.     *_NL*)
  1793.     default_layout=us  # Netherlands
  1794.     default_variant=intl # International (with dead keys)
  1795.     ;;
  1796.     *_MN*)
  1797.     default_layout=mn  # Mongolia
  1798.     ;;
  1799.     *_MT*)
  1800.     default_layout=mt  # Malta
  1801.     layout_priority=critical
  1802.     ;;
  1803.     se_NO*)
  1804.     default_layout=no  # Norway
  1805.     default_variant=smi # Northern Saami
  1806.     ;;
  1807.     *_NO*)
  1808.     default_layout=no  # Norway (se_NO is not in this case)
  1809.     ;;
  1810.     *_PL*)
  1811.     default_layout=pl  # Poland
  1812.     ;;
  1813.     *_PT*)
  1814.     default_layout=pt  # Portugal
  1815.     ;;
  1816.     *_RO*)
  1817.     default_layout=ro  # Romania
  1818.     ;;
  1819.     *_RU*)
  1820.     default_layout=ru  # Russia
  1821.     layout_priority=critical
  1822.     ;;
  1823.     se_SE*)
  1824.     default_layout=se  # Sweden
  1825.     default_variant=smi # Northern Saami
  1826.     ;;
  1827.     *_SK*)
  1828.     default_layout=sk  # Slovakia
  1829.     ;;
  1830.     *_SI*)
  1831.     default_layout=si  # Slovenia
  1832.     ;;
  1833.     *_TJ*)
  1834.     default_layout=tj  # Tajikistan
  1835.     ;;
  1836.     *_TH*)
  1837.     default_layout=th  # Thailand
  1838.     layout_priority=critical
  1839.     ;;
  1840.     ku_TR*)
  1841.     default_layout=tr  # Turkish
  1842.     default_variant=ku # Kurdish, Latin Q
  1843.     ;;
  1844.     *_TR*)
  1845.     default_layout=tr  # Turkish
  1846.     layout_priority=critical
  1847.     ;;
  1848.     *_UA*)
  1849.     default_layout=ua  # Ukraine
  1850.     ;;
  1851.     en_US*)
  1852.     default_layout=us  # U.S. English
  1853.     ;;
  1854. # According to https://launchpad.net/bugs/191451, most keyboards in Vietnam
  1855. # are in fact US keyboards.
  1856.     *_VN*)
  1857.     default_layout=us  # Vietnam
  1858.     ;;
  1859.     # Keyboards for specific languages and international keyboards:
  1860.     # TODO: Is the following list correct?
  1861.     *_AR*|*_BO*|*_CL*|*_CO*|*_CR*|*_DO*|*_EC*|*_GT*|*_HN*|*_MX*|*_NI*|*_PA*|*_PE*|es_PR*|*_PY*|*_SV*|es_US*|*_UY*|*_VE*)
  1862.     default_layout=latam # Latin American
  1863.     ;;
  1864.     ar_*)
  1865.     default_layout=ara # Arabic
  1866.     ;;
  1867.     bs_*)
  1868.     default_layout=ba  # Bosnia and Herzegovina
  1869.     ;;
  1870.     de_*)
  1871.     default_layout=de  # Germany
  1872.     ;;
  1873.     el_*)
  1874.     default_layout=gr  # Greece
  1875.     ;;
  1876.     eo|eo.*|eo_*|eo\@*)
  1877.     default_layout=epo  # Esperanto
  1878.     ;;
  1879.     fr_*)
  1880.     default_layout=fr  # France
  1881.     default_variant=oss # Alternative
  1882.     layout_priority=critical
  1883.     ;;
  1884.     gu_*)
  1885.     default_layout=in  # India
  1886.     default_variant=guj # Gujarati
  1887.     ;;
  1888.     hi_*)
  1889.     default_layout=in  # India
  1890.     default_variant=deva # Devanagari
  1891.     ;;
  1892.     hr_*)
  1893.     default_layout=hr  # Croatia
  1894.     ;;
  1895.     hy_*)
  1896.     default_layout=am  # Armenia
  1897.     ;;
  1898.     ka_*)
  1899.     default_layout=ge  # Georgia
  1900.     layout_priority=critical
  1901.     ;;
  1902.     kn_*)
  1903.     default_layout=in  # India
  1904.     default_variant=kan # Kannada
  1905.     ;;
  1906.     lo_*)
  1907.     default_layout=la  # Laos
  1908.     ;;
  1909.     ml_*)
  1910.     default_layout=in  # India
  1911.     default_variant=mal # Malayalam
  1912.     ;;
  1913.     pa_*)
  1914.     default_layout=in  # India
  1915.     default_variant=guru # Gurmukhi
  1916.     ;;
  1917.     sr_ME*)
  1918.     default_layout=me  # Montenegro
  1919.     layout_priority=critical
  1920.     ;;
  1921.     sr_*)
  1922.     default_layout=rs  # Serbia
  1923.     layout_priority=critical
  1924.     ;;
  1925.     sv_*)
  1926.     default_layout=se  # Sweden
  1927.     default_variant=basic
  1928.     ;;
  1929.     ta_*)
  1930.     default_layout=in  # India
  1931.     default_variant=tam # Tamil
  1932.     ;;
  1933.     te_*)
  1934.     default_layout=in  # India
  1935.     default_variant=tel # Telugu
  1936.     ;;
  1937.     zh_CN)
  1938.     default_layout=cn  # China
  1939.     ;;
  1940.     # Fallback
  1941.     *)
  1942.     default_layout=us
  1943.     ;;
  1944. esac
  1945.  
  1946. if \
  1947.     [ -d /lib/debian-installer ] \
  1948.     && db_get debian-installer/charmap \
  1949.     && [ "$RET" ]
  1950. then
  1951.     default_charmap="$RET"
  1952. elif [ "$locale" = C ]; then
  1953.     default_charmap=UTF-8
  1954.     charmap_priority=high
  1955. elif which locale >/dev/null; then
  1956.     default_charmap=`locale charmap`
  1957. else
  1958.     default_charmap=unknown
  1959. fi
  1960. if echo "$charmaps" | grep "$default_charmap" >/dev/null; then
  1961.     charmap_priority=low
  1962. else
  1963.     default_charmap=UTF-8
  1964.     charmap_priority=high
  1965. fi
  1966.  
  1967. arch=`guess_arch`
  1968.  
  1969. case "$arch" in
  1970.     alpha*)
  1971.     default_model=pc105
  1972.     model_priority=medium
  1973.     ;;
  1974.     amd64*)
  1975.     default_model=pc105
  1976.     model_priority=medium
  1977.     ;;
  1978.     arm*)
  1979.     default_model=pc105
  1980.     model_priority=medium
  1981.     ;;
  1982.     i386*)
  1983.     default_model=pc105
  1984.     model_priority=medium
  1985.     ;;
  1986.     ia64*)
  1987.     default_model=pc105
  1988.     model_priority=medium
  1989.     ;;
  1990.     m68k/amiga)
  1991.     default_model=amiga
  1992.     model_priority=medium
  1993.     ;;
  1994.     m68k/atari)
  1995.     default_model=ataritt
  1996.     model_priority=medium
  1997.     ;;
  1998.     m68k/mac)
  1999.     default_model=macintosh_old
  2000.     model_priority=medium
  2001.     ;;
  2002.     m68k/sun*)
  2003.     default_model=sun4 # also sun5, pc105
  2004.     model_priority=critical
  2005.     ;;
  2006.     m68k/*vme*)
  2007.     default_model=pc105
  2008.     model_priority=medium
  2009.     ;;
  2010.     mips*)
  2011.     default_model=pc105
  2012.     model_priority=medium
  2013.     ;;
  2014.     powerpc/amiga)
  2015.     default_model=amiga
  2016.     model_priority=medium
  2017.     ;;
  2018.     powerpc/apus)
  2019.     default_model=amiga
  2020.     model_priority=medium
  2021.     ;;
  2022.     powerpc/chrp*)
  2023.     default_model=pc105 # also macintosh_old and maybe amiga
  2024.     model_priority=critical
  2025.     ;;
  2026.     powerpc/mac)
  2027.     default_model=pc105
  2028.     model_priority=medium
  2029.     ;;
  2030.     powerpc/pasemi)
  2031.     default_model=pc105
  2032.     model_priority=medium
  2033.     ;;
  2034.     powerpc/powermac*)
  2035.     default_model=pc105
  2036.     model_priority=medium
  2037.     ;;
  2038.     powerpc/prep)
  2039.     default_model=pc105
  2040.     model_priority=medium
  2041.     ;;
  2042.     powerpc/ps3|powerpc/cell)
  2043.     default_model=pc105
  2044.     model_priority=medium
  2045.     ;;
  2046.     sparc*)
  2047.     default_model=pc105 # also sun4, sun5
  2048.     model_priority=critical
  2049.     ;;
  2050.     s390*)
  2051.     default_model=pc105
  2052.     model_priority=medium
  2053.     ;;
  2054.     *)
  2055.     default_model=pc105
  2056.     model_priority=critical
  2057.     ;;
  2058. esac    
  2059.  
  2060. #######################################################################
  2061.  
  2062. # Use the value of debian-installer/keymap to get better default
  2063. # layout.  Lower the priority of the Debconf question to medium.
  2064.  
  2065. # This is a desperation measure, but required for migration from
  2066. # pre-console-setup systems without X installed. We just have to copy
  2067. # the guesswork formerly done by xserver-xorg.config.
  2068.  
  2069. if db_get debian-installer/keymap && [ "$RET" ]; then
  2070.     di_keymap="${RET##mac-usb-}"
  2071.     di_keymap="${di_keymap%%-latin1}"
  2072.  
  2073.     XKBMODEL=''
  2074.     XKBLAYOUT=''
  2075.     XKBVARIANT=''
  2076.     case "$di_keymap" in
  2077.     be2) XKBLAYOUT="be";;
  2078.     bg) XKBLAYOUT="bg"; XKBVARIANT="bds";;
  2079.     br) XKBLAYOUT="us"; XKBVARIANT="intl"; XKBMODEL="pc104";;
  2080.     br-abnt2) XKBLAYOUT="br"; XKBVARIANT="abnt2"; XKBMODEL="abnt2";;
  2081.     by) XKBLAYOUT="by";;
  2082.     cf) XKBLAYOUT="ca"; XKBVARIANT="fr";;
  2083.     croat) XKBLAYOUT="hr";;
  2084.     cz-lat2) XKBLAYOUT="cz";;
  2085.     de-latin1-nodeadkeys) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  2086.     de) XKBLAYOUT="de";;
  2087.     dvorak) XKBLAYOUT="us"; XKBVARIANT="dvorak"; XKBMODEL="pc104";;
  2088.     dk) XKBLAYOUT="dk";;
  2089.     es) XKBLAYOUT="es";;
  2090.     et) XKBLAYOUT="ee";;
  2091.     'fi') XKBLAYOUT="fi";;
  2092.     fr-latin9) XKBLAYOUT="fr"; XKBVARIANT="latin9";;
  2093.     fr_CH) XKBLAYOUT="ch"; XKBVARIANT="fr";;
  2094.     fr) XKBLAYOUT="fr";;
  2095.     hebrew) XKBLAYOUT="il";;
  2096.     hu) XKBLAYOUT="hu";;
  2097.     gb) XKBLAYOUT="gb";;
  2098.     is) XKBLAYOUT="is";;
  2099.     it) XKBLAYOUT="it";;
  2100.     jp106) XKBLAYOUT="jp"; XKBVARIANT="kana"; XKBMODEL="jp106";;
  2101.     la) XKBLAYOUT="latam";;
  2102.     lt) XKBLAYOUT="lt";; 
  2103.     lv-latin4) XKBLAYOUT="lv";;
  2104.     mac-us-std) XKBLAYOUT="us";;
  2105.     mac-de2-ext) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  2106.     mac-fr2-ext) XKBLAYOUT="fr";;
  2107.     mac-fr3) XKBLAYOUT="fr";;
  2108.     mac-es) XKBLAYOUT="es";;
  2109.     mk) XKBLAYOUT="mk";;
  2110.     nl) XKBLAYOUT="nl";;
  2111.     no) XKBLAYOUT="no";;
  2112.     pl) XKBLAYOUT="pl";;
  2113.     pt) XKBLAYOUT="pt";;
  2114.     ro) XKBLAYOUT="ro";;
  2115.     ru) XKBLAYOUT="ru";;
  2116.     se) XKBLAYOUT="se";;
  2117.     sg) XKBLAYOUT="ch"; XKBVARIANT="de";;
  2118.     sk-qwerty) XKBLAYOUT="sk"; XKBVARIANT="qwerty";;
  2119.     slovene) XKBLAYOUT="si";;
  2120.     sr-cy) XKBLAYOUT="rs";;
  2121.     trf|trfu) XKBLAYOUT="tr"; XKBVARIANT="f";;
  2122.     trq|trqu) XKBLAYOUT="tr";;
  2123.     ua) XKBLAYOUT="ua";;
  2124.     uk) XKBLAYOUT="gb";;
  2125.     us) XKBLAYOUT="us"; XKBMODEL="pc104";;
  2126.     esac
  2127.  
  2128.     # Currently the following two lines are meaningless but stay here
  2129.     # in case some wants to use the real XkbLayout and XkbVariant for
  2130.     # the non-Latin layouts
  2131.     XKBLAYOUT=${XKBLAYOUT#*,}
  2132.     XKBVARIANT=${XKBVARIANT#*,}
  2133.  
  2134.     case "$XKBLAYOUT" in
  2135.     '')
  2136.         layout_priority=critical
  2137.         ;;
  2138.     bg)
  2139.         # since there are two incompatible layouts and the console
  2140.         # provides only one of them
  2141.         default_layout="$XKBLAYOUT"
  2142.         default_variant="$XKBVARIANT"
  2143.         layout_priority=high
  2144.         ;;
  2145.     *)
  2146.         if [ "$XKBMODEL" ]; then
  2147.         default_model="$XKBMODEL"
  2148.         fi
  2149.         default_layout="$XKBLAYOUT"
  2150.         default_variant="$XKBVARIANT"
  2151.         layout_priority=medium
  2152.         ;;
  2153.     esac
  2154. fi
  2155.     
  2156. # Get defaults from debconf, to allow preseeding.
  2157. if [ -d /lib/debian-installer ] || [ "$OVERRIDE_ALLOW_PRESEEDING" ]; then
  2158.     if db_get console-setup/modelcode && [ "$RET" ]; then
  2159.     default_model="$RET"
  2160.     fi
  2161.     if db_get console-setup/layoutcode && [ "$RET" ]; then
  2162.     default_layout="$RET"
  2163.     if db_fget console-setup/layoutcode seen && [ "$RET" = true ]; then
  2164.         layout_priority=medium
  2165.         db_set console-setup/ask_detect false
  2166.         db_fset console-setup/ask_detect seen true
  2167.     fi
  2168.     fi
  2169.     if db_get console-setup/variantcode && [ "$RET" ]; then
  2170.     default_variant="$RET"
  2171.     fi
  2172.     if db_get console-setup/optionscode && [ "$RET" ]; then
  2173.     XKBOPTIONS="$RET"
  2174.     got_xkboptions=yes
  2175.     fi
  2176.     if db_get console-setup/fontsize && [ "$RET" ]; then
  2177.     db_set console-setup/fontsize-text "$RET"
  2178.     db_set console-setup/fontsize-fb "$RET"
  2179.     fi
  2180. fi
  2181.  
  2182. # Load the config file, if it exists.
  2183. if [ -e $CONFIGFILE ]; then
  2184.     . $CONFIGFILE || true
  2185.     
  2186.     got_full_config=yes
  2187.     got_xkboptions=yes
  2188.     model_priority=medium
  2189.     layout_priority=medium
  2190.     default_ttys="$ACTIVE_CONSOLES"
  2191.     default_charmap="$CHARMAP"
  2192.     default_fontface="$FONTFACE"
  2193.     default_fontsize="$FONTSIZE"
  2194.     default_model="$XKBMODEL"
  2195.  
  2196.     default_codeset="`decode_codeset $CODESET`"
  2197.     if [ -z "$default_codeset" ]; then
  2198.     default_codeset=Uni1
  2199.     codeset_priority=high
  2200.     fi
  2201.  
  2202.     migrate_layout () {
  2203.     case "$1" in
  2204.         cs)
  2205.         echo rs
  2206.         ;;
  2207.         *)
  2208.         echo "$1"
  2209.         ;;
  2210.     esac
  2211.     }
  2212.  
  2213.     migrate_variant () {
  2214.     case "$1" in
  2215.         jp)
  2216.         case "$2" in
  2217.             latin)
  2218.             echo 106
  2219.             ;;
  2220.             jp106)
  2221.             echo kana
  2222.             ;;
  2223.             *)
  2224.             echo "$2"
  2225.             ;;
  2226.         esac
  2227.         ;;
  2228.         *)
  2229.         echo "$2"
  2230.         ;;
  2231.     esac
  2232.     }
  2233.  
  2234.     # Migration
  2235.     case "$XKBLAYOUT" in
  2236.     *,*)
  2237.         layout1="${XKBLAYOUT%%,*}"
  2238.         layout2="${XKBLAYOUT#*,}"
  2239.         variant1="${XKBVARIANT%%,*}"
  2240.         variant2="${XKBVARIANT#*,}"
  2241.         XKBLAYOUT="$(migrate_layout "$layout1"),$(migrate_layout "$layout2")"
  2242.         XKBVARIANT="$(migrate_variant "$layout1" "$variant1"),$(migrate_variant "$layout2" "$variant2")"
  2243.         ;;
  2244.     *)
  2245.         XKBLAYOUT="$(migrate_layout "$XKBLAYOUT")"
  2246.         XKBVARIANT="$(migrate_variant "$XKBLAYOUT" "$XKBVARIANT")"
  2247.         ;;
  2248.     esac
  2249.  
  2250.     case "$XKBLAYOUT" in
  2251.     lt,lt)
  2252.         default_layout=${XKBLAYOUT%,*}
  2253.         default_variant="${XKBVARIANT%,*}"
  2254.         unsupported_layout=no
  2255.         ;;        
  2256.     # TODO: make s.t. to not forget to update this list
  2257.     me,me|rs,rs|us,am|us,ara|us,ben|us,bd|us,bg|us,bt|us,by|us,deva|us,ge|us,gh|us,gr|us,guj|us,guru|us,il|us,in|us,ir|us,iku|jp,jp|us,jp|us,kan|us,kh|us,kz|us,la|us,lao|us,lk|us,lt|us,mk|us,mm|us,mn|us,mv|us,mal|us,ori|us,pk|us,ru|us,scc|us,sy|us,syr|us,tel|us,th|us,tj|us,tam|us,ua|us,uz)
  2258.         default_layout=${XKBLAYOUT#*,}
  2259.         default_variant="${XKBVARIANT#*,}"
  2260.         unsupported_layout=no
  2261.         ;;        
  2262.     *,*)
  2263.         unsupported_layout=yes
  2264.         ;;
  2265.     *)
  2266.         default_layout="$XKBLAYOUT"
  2267.         default_variant="$XKBVARIANT"
  2268.         ;;
  2269.     esac
  2270. fi
  2271.  
  2272. if [ "$got_xkboptions" = yes ]; then
  2273.     default_toggle='No toggling'
  2274.     default_switch='No temporary switch'
  2275.     default_altgr='No AltGr key'
  2276.     default_compose='No compose key'
  2277.     for option in `echo $XKBOPTIONS | sed 's/,/ /g'`; do
  2278.     case "$option" in
  2279.         compose:caps)
  2280.         default_compose='Caps Lock';;
  2281.         compose:lwin)
  2282.         default_compose='Left Logo key';;
  2283.         compose:menu)
  2284.         default_compose='Menu key';;
  2285.         compose:ralt)
  2286.         default_compose='Right Alt';;
  2287.         compose:rctrl)
  2288.         default_compose='Right Control';;
  2289.         compose:rwin)
  2290.         default_compose='Right Logo key';;
  2291.         grp:alt_caps_toggle)
  2292.         default_toggle='Alt+Caps Lock';;
  2293.         grp:alt_shift_toggle)
  2294.         default_toggle='Alt+Shift';;
  2295.         grp:caps_toggle)
  2296.         default_toggle='Caps Lock';;
  2297.         grp:ctrl_alt_toggle)
  2298.         default_toggle='Control+Alt';;
  2299.         grp:ctrl_shift_toggle)
  2300.         default_toggle='Control+Shift';;
  2301.         grp:lalt_toggle)
  2302.         default_toggle='Left Alt';;
  2303.         grp:lctrl_lshift_toggle)
  2304.         default_toggle='Left Control+Left Shift';;
  2305.         grp:lctrl_toggle)
  2306.         default_toggle='Left Control';;
  2307.         grp:lshift_toggle)
  2308.         default_toggle='Left Shift';;
  2309.         grp:lswitch)
  2310.         default_switch='Left Alt';;
  2311.         grp:lwin_switch)
  2312.         default_switch='Left Logo key';;
  2313.         grp:lwin_toggle)
  2314.         default_toggle='Left Logo key';;
  2315.         grp:menu_toggle)
  2316.         default_toggle='Menu key';;
  2317.         grp:rctrl_toggle)
  2318.         default_toggle='Right Control';;
  2319.         grp:rshift_toggle)
  2320.         default_toggle='Right Shift';;
  2321.         grp:rwin_switch)
  2322.         default_switch='Right Logo key';;
  2323.         grp:rwin_toggle)
  2324.         default_toggle='Right Logo key';;
  2325.         grp:sclk_toggle)
  2326.         default_toggle='Scroll Lock key';;
  2327.         grp:switch)
  2328.         default_switch='Right Alt';;
  2329.         grp:toggle)
  2330.         default_toggle='Right Alt';;
  2331.         grp:win_switch)
  2332.         default_switch='Both Logo keys';;
  2333.         lv3:alt_switch)
  2334.         default_altgr='Both Alt keys';;
  2335.         lv3:enter_switch)
  2336.         default_altgr='Keypad Enter key';;
  2337.         lv3:lalt_switch)
  2338.         default_altgr='Left Alt';;
  2339.         lv3:lwin_switch)
  2340.         default_altgr='Left Logo key';;
  2341.         lv3:menu_switch)
  2342.         default_altgr='Menu key';;
  2343.         lv3:ralt_switch)
  2344.         default_altgr='Right Alt';;
  2345.         lv3:rwin_switch)
  2346.         default_altgr='Right Logo key';;
  2347.         lv3:switch)
  2348.         default_altgr='Right Control';;
  2349.         lv3:win_switch)
  2350.         default_altgr='Both Logo keys';;
  2351.         grp_led:scroll)
  2352.         ;;
  2353.         *)
  2354.         unsupported_layout=yes;;
  2355.     esac
  2356.     done
  2357. fi
  2358.  
  2359. if [ "$got_full_config" = yes ]; then
  2360.     # Store values from config file into debconf db.
  2361.     
  2362.     db_set console-setup/ttys "$default_ttys"
  2363.     db_set console-setup/charmap "$default_charmap"
  2364.     db_set console-setup/codeset "$default_codeset"
  2365.     db_set console-setup/fontface "$default_fontface"
  2366.     db_set console-setup/fontsize-text "$default_fontsize"
  2367.     db_set console-setup/fontsize-fb "$default_fontsize"
  2368.     db_set console-setup/fontsize "$default_fontsize"
  2369. fi
  2370. if [ "$got_xkboptions" = yes ]; then
  2371.     db_set console-setup/toggle "$default_toggle"
  2372.     db_set console-setup/switch "$default_switch"
  2373.     db_set console-setup/altgr "$default_altgr"
  2374.     db_set console-setup/compose "$default_compose"
  2375. fi
  2376.  
  2377. #######################################################################
  2378.  
  2379. STATE=1
  2380. old_state=0
  2381. while :; do
  2382.     starting_state=$STATE
  2383.     case "$STATE" in
  2384.     1)
  2385.         if \
  2386.         ask_debconf console-setup/model $model_priority \
  2387.             model $default_model
  2388.         then
  2389.         db_set console-setup/modelcode "$RET"
  2390.         STATE=$(($STATE + 1))
  2391.         else
  2392.         STATE=$(($STATE - 1))
  2393.         fi
  2394.         ;;
  2395.     2)
  2396.         db_get console-setup/modelcode
  2397.         if \
  2398.         $detect_keyboard \
  2399.         && [ "$RET" != SKIP ] \
  2400.         && [ -e "/usr/share/console-setup-mini/$RET.tree" ]
  2401.         then
  2402.         db_input high console-setup/ask_detect || true
  2403.         if db_go; then
  2404.             STATE=$(($STATE + 1))
  2405.         else
  2406.             STATE=$(($STATE - 1))
  2407.         fi
  2408.         else
  2409.         STATE=$(($STATE + $STATE - $old_state))
  2410.         fi
  2411.         ;;
  2412.     3)
  2413.         db_get console-setup/modelcode
  2414.         model="$RET"
  2415.         if \
  2416.         [ "$STATE" -ge "$old_state" ] \
  2417.         && $detect_keyboard \
  2418.         && [ "$model" != SKIP ] \
  2419.         && [ -e "/usr/share/console-setup-mini/$model.tree" ] \
  2420.         && db_get console-setup/ask_detect \
  2421.         && [ "$RET" = true ]
  2422.         then
  2423.         db_subst console-setup/detect FILENAME \
  2424.             "/usr/share/console-setup-mini/$model.tree"
  2425.         if db_input critical console-setup/detect && db_go; then
  2426.             db_get console-setup/detect
  2427.             detected_keyboard="$RET"
  2428.             # TODO: produce human-readable layout name
  2429.             db_subst console-setup/detected LAYOUT "$detected_keyboard"
  2430.             db_input high console-setup/detected || true
  2431.             if db_go; then
  2432.             unsupported_layout=no
  2433.             STATE=$(($STATE + 1))
  2434.             else
  2435.             detected_keyboard=
  2436.             STATE=$(($STATE - 1))
  2437.             fi
  2438.         else
  2439.             STATE=$(($STATE - 1))
  2440.         fi
  2441.         else
  2442.         detected_keyboard=
  2443.         STATE=$(($STATE + $STATE - $old_state))
  2444.         fi
  2445.         ;;
  2446.     4)
  2447.         if [ "$detected_keyboard" ]; then
  2448.         layout="${detected_keyboard%%:*}"
  2449.         db_set console-setup/layoutcode "$layout"
  2450.         # skip the question without making Debconf loop
  2451.         STATE=$(( $STATE + $STATE - $old_state ))
  2452.         elif [ "$model" = SKIP ]; then
  2453.         STATE=$(( $STATE + $STATE - $old_state ))
  2454.         elif [ "$unsupported_layout" = yes ]; then
  2455.         if [ "$STATE" -ge "$old_state" ]; then
  2456.             # This is an error template, so debconf ignores the seen
  2457.             # flag. Make sure that it's only asked at most once per
  2458.             # package installation.
  2459.             if ! db_fget console-setup/dont_ask_layout asked_this_run || \
  2460.                [ "$RET" = false ]; then
  2461.             db_input medium console-setup/dont_ask_layout || true
  2462.             db_go || true
  2463.             db_fset console-setup/dont_ask_layout asked_this_run true
  2464.             fi
  2465.             db_set console-setup/layoutcode "$XKBLAYOUT"
  2466.             STATE=$(($STATE + 1))
  2467.         else
  2468.             STATE=$(($STATE - 1))
  2469.         fi
  2470.         elif \
  2471.         ask_debconf console-setup/layout "$layout_priority" \
  2472.             layout "$default_layout"
  2473.         then
  2474.         layout="$RET"
  2475.         STATE=$(($STATE + 1))
  2476.         else
  2477.         STATE=$(($STATE - 1))
  2478.         fi
  2479.         ;;
  2480.     5)
  2481.         adjust_layout=false
  2482.         if [ "$detected_keyboard" ]; then
  2483.         case $detected_keyboard in
  2484.             *:*)
  2485.             variant="${detected_keyboard#*:}"
  2486.             ;;
  2487.             *)
  2488.             variant=
  2489.             ;;
  2490.         esac
  2491.         db_set console-setup/variantcode "$variant"
  2492.         adjust_layout=:
  2493.         # skip the question without making Debconf loop
  2494.         STATE=$(( $STATE + $STATE - $old_state ))
  2495.         elif [ "$model" = SKIP ]; then
  2496.         STATE=$(( $STATE + $STATE - $old_state ))
  2497.         elif [ "$unsupported_layout" = yes ]; then
  2498.         db_set console-setup/variantcode "$XKBVARIANT"
  2499.         # skip the question without making Debconf loop
  2500.         STATE=$(( $STATE + $STATE - $old_state ))
  2501.         elif \
  2502.         ask_debconf console-setup/variant "$layout_priority" \
  2503.                     "variant\*${layout}" "$default_variant"
  2504.         then
  2505.         variant="$RET"
  2506.         adjust_layout=:
  2507.         STATE=$(($STATE + 1))
  2508.         else
  2509.         STATE=$(($STATE - 1))
  2510.         fi
  2511.         if $adjust_layout; then
  2512.         case "$layout" in
  2513.             jp)
  2514.             case "$variant" in
  2515.                 106|common|OADG109A|nicola_f_bs)
  2516.                 latin=yes
  2517.                 real_layout=$layout
  2518.                 ;;
  2519.                 *)
  2520.                 latin=no
  2521.                 real_layout=jp,jp
  2522.                 ;;
  2523.             esac
  2524.             ;;
  2525.             lt)
  2526.             latin=no
  2527.             real_layout=lt,lt
  2528.             ;;
  2529.             me)
  2530.             case "$variant" in
  2531.                 basic|latin*)
  2532.                 latin=yes
  2533.                 real_layout=$layout
  2534.                 ;;
  2535.                 *)
  2536.                 latin=no
  2537.                 real_layout=me,me
  2538.                 ;;
  2539.             esac
  2540.             ;;
  2541.             rs)
  2542.             case "$variant" in
  2543.                 basic|latin*)
  2544.                 latin=yes
  2545.                 real_layout=$layout
  2546.                 ;;
  2547.                 *)
  2548.                 latin=no
  2549.                 real_layout=rs,rs
  2550.                 ;;
  2551.             esac
  2552.             ;;
  2553.             # TODO: make s.t. to not forget to update this list.  Don't
  2554.             # forget to update also the nonlatin list in kbdcompiler
  2555.             am|ara|ben|bd|bg|bt|by|deva|ge|gh|gr|guj|guru|il|in|ir|iku|kan|kh|kz|la|lao|lk|mk|mm|mn|mv|mal|ori|pk|ru|scc|sy|syr|tel|th|tj|tam|ua|uz)
  2556.             latin=no
  2557.             real_layout=us,$layout
  2558.             ;;
  2559.             *)
  2560.             latin=yes
  2561.             real_layout=$layout
  2562.             ;;
  2563.         esac
  2564.         db_set console-setup/layoutcode "$real_layout"
  2565.         if [ "$latin" = yes ]; then
  2566.             db_set console-setup/variantcode "$variant"
  2567.         elif [ "$real_layout" = lt,lt ]; then
  2568.             case "$variant" in
  2569.             us)
  2570.                 db_set console-setup/variantcode "us,"
  2571.                 ;;
  2572.             *)
  2573.                 db_set console-setup/variantcode "$variant,us"
  2574.                 ;;
  2575.             esac
  2576.         elif [ "$real_layout" = jp,jp ]; then
  2577.                 db_set console-setup/variantcode "106,$variant"
  2578.         elif [ "$real_layout" = me,me ]; then
  2579.             case "$variant" in
  2580.             cyrillicyz)
  2581.                 db_set console-setup/variantcode \
  2582.                 "latinyz,$variant"
  2583.                 ;;
  2584.             cyrillicalternatequotes)
  2585.                 db_set console-setup/variantcode \
  2586.                 "latinalternatequotes,$variant"
  2587.                 ;;
  2588.             *)
  2589.                 db_set console-setup/variantcode \
  2590.                 "basic,$variant"
  2591.                 ;;
  2592.             esac
  2593.         elif [ "$real_layout" = rs,rs ]; then
  2594.             case "$variant" in
  2595.             yz)
  2596.                 db_set console-setup/variantcode \
  2597.                 "latinyz,$variant"
  2598.                 ;;
  2599.             alternatequotes)
  2600.                 db_set console-setup/variantcode \
  2601.                 "latinalternatequotes,$variant"
  2602.                 ;;
  2603.             *)
  2604.                 db_set console-setup/variantcode \
  2605.                 "latin,$variant"
  2606.                 ;;
  2607.             esac
  2608.         else
  2609.             db_set console-setup/variantcode ",$variant"
  2610.         fi
  2611.         fi
  2612.         ;;
  2613.     6)
  2614.         if [ "$unsupported_layout" = yes ]; then
  2615.         db_set console-setup/optionscode "$XKBOPTIONS"
  2616.         # skip the questions without making Debconf loop
  2617.         STATE=$(( $STATE + $STATE - $old_state ))
  2618.         elif [ "$model" = SKIP ]; then
  2619.         STATE=$(( $STATE + $STATE - $old_state ))
  2620.         else
  2621.         if [ "$latin" = yes ]; then
  2622.             db_default console-setup/toggle 'No toggling'
  2623.             db_default console-setup/switch 'No temporary switch'
  2624.         fi
  2625.         db_beginblock
  2626.         if [ "$latin" = no ]; then
  2627.             db_get console-setup/toggle
  2628.             if [ "$RET" = 'No toggling' ]; then
  2629.             db_reset console-setup/toggle
  2630.             fi
  2631.             db_input high console-setup/toggle || true
  2632.             db_input medium console-setup/switch || true
  2633.         fi
  2634.         if [ ! -f $CONFIGFILE -a "$layout" = us ]; then
  2635.             if [ "$variant" = '' ]; then
  2636.             # basic US keyboard doesn't use AltGr.
  2637.             db_default console-setup/altgr 'No AltGr key'
  2638.             else
  2639.             db_default console-setup/altgr 'Right Alt'
  2640.             fi
  2641.         fi
  2642.         db_input medium console-setup/altgr || true
  2643.         db_input medium console-setup/compose || true
  2644.         db_endblock
  2645.  
  2646.         if db_go; then 
  2647.             STATE=$(($STATE + 1))
  2648.         else
  2649.             STATE=$(($STATE - 1))
  2650.         fi
  2651.  
  2652.         db_get console-setup/toggle
  2653.         case "$RET" in
  2654.             Caps\ Lock)
  2655.                 caps_allocated=yes
  2656.                 toggle=caps_toggle;;
  2657.             Right\ Alt)
  2658.                 ralt_allocated=yes
  2659.                 toggle=toggle;;
  2660.             Right\ Control)
  2661.                 rctrl_allocated=yes
  2662.                 toggle=rctrl_toggle;;
  2663.             Right\ Shift)
  2664.                 rshift_allocated=yes
  2665.                 toggle=rshift_toggle;;
  2666.             Right\ Logo?key)
  2667.                 rwin_allocated=yes
  2668.                 toggle=rwin_toggle;;
  2669.             Menu?key)
  2670.             menu_allocated=yes
  2671.             toggle=menu_toggle;;
  2672.             Alt+Shift)
  2673.             toggle=alt_shift_toggle;;
  2674.             Control+Shift)
  2675.             toggle=ctrl_shift_toggle;;
  2676.             Left\ Control+Left\ Shift)
  2677.             toggle=lctrl_lshift_toggle;;
  2678.             Scroll\ Lock\ key)
  2679.             toggle=sclk_toggle;;
  2680.             Alt+Caps\ Lock)
  2681.             toggle=alt_caps_toggle;;
  2682.             Control+Alt)
  2683.             toggle=ctrl_alt_toggle;;
  2684.             Left\ Alt)
  2685.                 lalt_allocated=yes
  2686.                 toggle=lalt_toggle;;
  2687.             Left\ Control)
  2688.                 lctrl_allocated=yes
  2689.                 toggle=lctrl_toggle;;
  2690.             Left\ Shift)
  2691.                 lshift_allocated=yes
  2692.                 toggle=lshift_toggle;;
  2693.             Left\ Logo?key)
  2694.                 lwin_allocated=yes
  2695.                 toggle=lwin_toggle;;
  2696.             No\ toggling)
  2697.                 toggle='';;
  2698.             *)
  2699.             echo Unknown toggle key option
  2700.             exit 1
  2701.             ;;
  2702.         esac
  2703.         if [ "$toggle" ]; then
  2704.             toggle=grp:$toggle
  2705.         fi
  2706.         
  2707.         db_get console-setup/switch
  2708.         switch=''
  2709.         case "$RET" in
  2710.             Right\ Alt)
  2711.                 if [ "$ralt_allocated" != yes ]; then
  2712.                 switch=switch
  2713.                 ralt_allocated=yes
  2714.                 fi;;
  2715.             Left\ Alt)
  2716.                 if [ "$lalt_allocated" != yes ]; then
  2717.                 switch=lswitch
  2718.                 lalt_allocated=yes
  2719.                 fi;;
  2720.             Right\ Logo?key)
  2721.                 if [ "$rwin_allocated" != yes ]; then
  2722.                 switch=rwin_switch
  2723.                 rwin_allocated=yes
  2724.                 fi;;
  2725.             Left\ Logo?key)
  2726.                 if [ "$lwin_allocated" != yes ]; then
  2727.                 switch=lwin_switch
  2728.                 lwin_allocated=yes
  2729.                 fi;;
  2730.             Both\ Logo?keys)
  2731.                 if \
  2732.                 [ "$rwin_allocated" != yes ] \
  2733.                 && [ "$lwin_allocated" != yes ]
  2734.             then
  2735.                 switch=win_switch
  2736.                 rwin_allocated=yes
  2737.                 lwin_allocated=yes
  2738.                 fi;;
  2739.             No\ temporary\ switch)
  2740.                 switch='';;
  2741.             *)
  2742.             echo Unknown switch key option
  2743.             exit 1
  2744.             ;;
  2745.         esac
  2746.         if [ "$switch" ]; then
  2747.             switch=grp:$switch
  2748.         fi
  2749.         
  2750.         db_get console-setup/altgr
  2751.         altgr=''
  2752.         case "$RET" in
  2753.             No?AltGr?key)
  2754.             altgr='';;
  2755.             Right?Alt)
  2756.             if [ "$ralt_allocated" != yes ]; then
  2757.                 altgr=ralt_switch
  2758.                 ralt_allocated=yes
  2759.             fi;;
  2760.             Right?Control)
  2761.             if [ "$rctrl_allocated" != yes ]; then
  2762.                 altgr=switch
  2763.                 rctrl_allocated=yes
  2764.             fi;;
  2765.             Menu?key)
  2766.             if [ "$menu_allocated" != yes ]; then
  2767.                 altgr=menu_switch
  2768.                 menu_allocated=yes
  2769.             fi;;
  2770.             Keypad?Enter?key)
  2771.             altgr=enter_switch;;
  2772.             Right?Logo?key)
  2773.             if [ "$rwin_allocated" != yes ]; then
  2774.                 altgr=rwin_switch
  2775.                 rwin_allocated=yes
  2776.             fi;;
  2777.             Left?Logo?key)
  2778.             if [ "$lwin_allocated" != yes ]; then
  2779.                 altgr=lwin_switch
  2780.                 lwin_allocated=yes
  2781.             fi;;
  2782.             Both?Logo?keys)
  2783.             if \
  2784.                 [ "$rwin_allocated" != yes ] \
  2785.                 && [ "$lwin_allocated" != yes ]
  2786.             then
  2787.                 altgr=win_switch
  2788.                 rwin_allocated=yes
  2789.                 lwin_allocated=yes
  2790.             fi;;
  2791.             Both?Alt?keys)
  2792.             if \
  2793.                 [ "$lalt_allocated" != yes ] \
  2794.                 && [ "$ralt_allocated" != yes ]
  2795.             then
  2796.                 altgr=alt_switch
  2797.                 ralt_allocated=yes
  2798.                 lalt_allocated=yes
  2799.             fi;;
  2800.             Left?Alt)
  2801.             if [ "$lalt_allocated" != yes ]; then
  2802.                 altgr=lalt_switch
  2803.                 lalt_allocated=yes
  2804.             fi;;
  2805.             *)
  2806.             echo Unknown altgr key option
  2807.             exit 1
  2808.             ;;
  2809.         esac
  2810.         if [ "$altgr" ]; then
  2811.             altgr=lv3:$altgr
  2812.         fi
  2813.  
  2814.         db_get console-setup/compose
  2815.         compose=''
  2816.         case "$RET" in
  2817.             No?compose?key)
  2818.             compose='';;
  2819.             Right?Alt)
  2820.             if [ "$ralt_allocated" != yes ]; then
  2821.                 compose=ralt
  2822.                 ralt_allocated=yes
  2823.             fi;;
  2824.             Right?Logo?key)
  2825.             if [ "$rwin_allocated" != yes ]; then
  2826.                 compose=rwin
  2827.                 rwin_allocated=yes
  2828.             fi;;
  2829.             Left?Logo?key)
  2830.             if [ "$lwin_allocated" != yes ]; then
  2831.                 compose=lwin 
  2832.                 lwin_allocated=yes
  2833.             fi;;
  2834.             Right?Control)
  2835.             if [ "$rctrl_allocated" != yes ]; then
  2836.                 compose=rctrl 
  2837.                 rctrl_allocated=yes
  2838.             fi;;
  2839.             Menu?key)
  2840.             if [ "$menu_allocated" != yes ]; then
  2841.                 compose=menu
  2842.                 menu_allocated=yes
  2843.             fi;;
  2844.             Caps?Lock)
  2845.             if [ "$caps_allocated" != yes ]; then
  2846.                 compose=caps
  2847.                 caps_allocated=yes
  2848.             fi;;
  2849.             *)
  2850.             echo Unknown compose key option
  2851.             exit 1
  2852.             ;;
  2853.         esac
  2854.         if [ "$compose" ]; then
  2855.             compose=compose:$compose
  2856.         fi
  2857.         
  2858.         case "$real_layout" in
  2859.             *,*)
  2860.                 leds=grp_led:scroll;;
  2861.             *)
  2862.             leds='';;
  2863.         esac
  2864.         
  2865.         options=$(
  2866.             echo $toggle $switch $altgr $compose $leds \
  2867.             | sed -e 's/^ *//' -e 's/ *$//' -e 's/  */,/g'
  2868.         )
  2869.         db_set console-setup/optionscode "$options"
  2870.         fi
  2871.         ;;            
  2872.     7)
  2873.         if [ "$package" = console-setup-mini ]; then
  2874.         if [ "$STATE" -ge "$old_state" ]; then
  2875.             STATE=$(($STATE + 1))
  2876.         else
  2877.             STATE=$(($STATE - 1))
  2878.         fi
  2879.         charmap=UTF-8
  2880.         else
  2881.         # add commas
  2882.         choices=`echo "$charmaps" | sed -e 's/$/,/g' | LC_ALL=C sort `
  2883.         # remove newlines
  2884.         choices=`echo $choices | sed -e 's/,$//' `
  2885.         db_subst console-setup/charmap CHOICES "$choices"
  2886.         db_default console-setup/charmap "$default_charmap"
  2887.         db_input $charmap_priority console-setup/charmap || true
  2888.         if db_go; then
  2889.             STATE=$(($STATE + 1))
  2890.         else
  2891.             STATE=$(($STATE - 1))
  2892.         fi
  2893.         db_get console-setup/charmap
  2894.         charmap=$RET
  2895.         fi
  2896.         ;;
  2897.     8)
  2898.         # It shouldn't be possible for $default_codeset to be
  2899.         # empty, but just a precaution.
  2900.         if [ "$default_codeset" ]; then
  2901.         db_default console-setup/codeset "$default_codeset"
  2902.         fi
  2903.         db_input $codeset_priority console-setup/codeset || true
  2904.         if db_go; then
  2905.         db_get console-setup/codeset
  2906.         codeset="`encode_codeset $RET`"
  2907.         db_set console-setup/codesetcode "$codeset"
  2908.         STATE=$(($STATE + 1))
  2909.         else
  2910.         STATE=$(($STATE - 1))
  2911.         fi
  2912.         ;;
  2913.     9)
  2914.         fontfaces=`available_fontfaces`
  2915.         # add commas
  2916.         choices=`echo "$fontfaces" | sed -e 's/$/,/g'`
  2917.         # remove newlines
  2918.         choices=`echo $choices | sed -e 's/,$//'`
  2919.         db_subst console-setup/fontface CHOICES "$choices"
  2920.         if [ -z "$default_fontface" ]; then
  2921.         case "$codeset" in
  2922.             Arabic)
  2923.             default_fontface=Fixed
  2924.             ;;
  2925.             Armenian)
  2926.             default_fontface=Fixed
  2927.             ;;
  2928.             CyrAsia)
  2929.             default_fontface=Fixed
  2930.             ;;
  2931.             CyrKoi)
  2932.             default_fontface=VGA
  2933.             ;;
  2934.             CyrSlav)
  2935.             default_fontface=VGA
  2936.             ;;
  2937.             Ethiopian)
  2938.             default_fontface=Goha
  2939.             ;;
  2940.             Georgian)
  2941.             default_fontface=Fixed
  2942.             ;;
  2943.             Greek)
  2944.             default_fontface=Fixed
  2945.             ;;
  2946.             Hebrew)
  2947.             default_fontface=Fixed
  2948.             ;;
  2949.             Lao)
  2950.             default_fontface=Fixed
  2951.             ;;
  2952.             Lat15)
  2953.             default_fontface=VGA
  2954.             ;;
  2955.             Lat2)
  2956.             default_fontface=VGA
  2957.             ;;
  2958.             Lat38)
  2959.             default_fontface=Fixed
  2960.             ;;
  2961.             Lat7)
  2962.             default_fontface=VGA
  2963.             ;;
  2964.             Thai)
  2965.             default_fontface=Fixed
  2966.             ;;
  2967.             Uni1)
  2968.             default_fontface=Fixed
  2969.             ;;
  2970.             Uni2)
  2971.             default_fontface=Fixed
  2972.             ;;
  2973.             Uni3)
  2974.             default_fontface=Fixed
  2975.             ;;
  2976.             Vietnamese)
  2977.             default_fontface=Fixed
  2978.             ;;
  2979.             *)
  2980.             default_fontface=Fixed
  2981.             ;;
  2982.         esac
  2983.         fi
  2984.         db_default console-setup/fontface "$default_fontface"
  2985.         db_input medium console-setup/fontface || true
  2986.         if db_go; then
  2987.         STATE=$(($STATE + 1))
  2988.         else
  2989.         STATE=$(($STATE - 1))
  2990.         fi
  2991.         db_get console-setup/fontface
  2992.         fontface=$RET
  2993.         ;;
  2994.     10)
  2995.         fontsizes=`available_fontsizes`
  2996.         # add commas
  2997.         choices=`echo "$fontsizes" | sed -e 's/$/,/g' `
  2998.         # remove newlines
  2999.         choices=`echo $choices | sed -e 's/,$//'`
  3000.         if echo "$choices" | grep -q x; then
  3001.         size_template=console-setup/fontsize-fb
  3002.         else
  3003.         size_template=console-setup/fontsize-text
  3004.         fi
  3005.         db_subst $size_template CHOICES "$choices"
  3006.         db_input medium $size_template || true
  3007.         if db_go; then
  3008.         STATE=$(($STATE + 1))
  3009.         else
  3010.         STATE=$(($STATE - 1))
  3011.         fi
  3012.         db_get $size_template
  3013.         fontsize=$RET
  3014.         db_set console-setup/fontsize "$fontsize"
  3015.         ;;
  3016.     11)
  3017.         db_input medium console-setup/ttys || true
  3018.         if db_go; then
  3019.         STATE=$(($STATE + 1))
  3020.         else
  3021.         STATE=$(($STATE - 1))
  3022.         fi
  3023.         db_get console-setup/ttys
  3024.         ttys=$RET
  3025.         ;;
  3026.     *)
  3027.         break
  3028.         ;;
  3029.     esac
  3030.     old_state=$starting_state
  3031. done
  3032.  
  3033. if [ $STATE -eq 0 ]; then
  3034.     exit 10
  3035. else
  3036.     # we don't do the following corrections during the state 2 or 3 of
  3037.     # the loop because if the user backs up and selects another layout
  3038.     # the keyboard model will be wrong.  We also want the combinations
  3039.     # Brasilian layout on Japanese keyboard and Japanese layout on
  3040.     # Brasilian keyboard to be possible.
  3041.     db_get console-setup/modelcode
  3042.     if [ "$RET" = "$default_model" ]; then
  3043.     if [ "$layout" = br ]; then 
  3044.         model=abnt2
  3045.     elif [ "$layout" = jp ]; then 
  3046.         model=jp106
  3047.     fi
  3048.     db_set console-setup/modelcode "$model"
  3049.     fi
  3050. fi
  3051.